• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    נפתר אשמח מאוד לגלות למה הקוד לא תקין

    פורום PHP
    3
    9
    118
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • א
      אדם נערך לאחרונה על ידי

      <?php
      $did=$_REQUEST['did'];
      $pass=$_REQUEST['pass'];
      if($did==null || $pass==null){
          print "error";
          exit();
      }
      else{
      $json=file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path=ivr2:/");
      $data = json_decode($json, true);
          $dirs = $data['dirs'];
      $my_arr = array();
      $my_ar = array();
      $my_a = array();
      foreach ($dirs as $file){
          $what=$file['what'];
          $my_arr[] = $what;
      }
        for ($my_ar=$my_arr , $my_a=$my_arr ; $my_ar != null ; $my_a=$my_ar)
        {
           $my_ar = array();
      foreach ($my_a as $file1){
      $json1=file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path={$file1}");
         $data1 = json_decode($json1, true);
          $dirs1 = $data1['dirs'];
          $what1=$dirs1['what'];
          if($what1 != null){
              $my_arr[] = $what1;
              $my_ar[] = $what1;
              
      }
      }
      }
      
      print_r ($my_arr);
      }
      ?>
      

      הקוד אמור להדפיס מערך של הנתיבים של כל השלוחות ותתי השלוחות במערכת, ובפועל מדפיס רק את השלוחות שבשלוחה הראשית.
      אשמח מאד לסיוע ועזרה!!!

      I תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • A
        amp Software 0 @אדם נערך לאחרונה על ידי

        @אדם
        יש כאן טעות בקוד (אם היית משתמש בלוג שגיאות זה היה מופיע לך מיד)

         $dirs1 = $data1['dirs'];
                    $what1 = $dirs1['what'];
        

        אתה שם במשתנה $dirs1 את האיבר 'dirs' שמכיל מערך של תיקיות, שבכל אחד מהתיקיות יש את האיבר what, אבל המשתנה $dirs מכיל רק מערך של תיקיות בלי מפתח של wath, ולכן השורה הזו שגויה

            $what1 = $dirs1['what'];
        

        כי באובייקט $dirs1 אין מפתח wath

        הקוד הזה לכאורה אמור להיות תקין (לא בדקתי)

        if ($did == null || $pass == null) {
            print "error";
            exit();
        } else {
            $json = file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path=ivr2:/");
            $data = json_decode($json, true);
            $dirs = $data['dirs'];
            $my_arr = array();
            $my_ar = array();
            $my_a = array();
            foreach ($dirs as $file) {
                $what = $file['what'];
                $my_arr[] = $what;
            }
            for ($my_ar = $my_arr, $my_a = $my_arr; $my_ar != null; $my_a = $my_ar) {
                $my_ar = array();
                foreach ($my_a as $file1) {
                    $json1 = file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path={$file1}");
                    $data1 = json_decode($json1, true);
                    $dirs1 = $data1['dirs'];
                    foreach ($dirs1 as $file2) {
                        $what1 = $file2['what'];
                        if ($what1 != null) {
                            $my_arr[] = $what1;
                            $my_ar[] = $what1;
                        }
                    }
                }
            }
        
            print_r($my_arr);
        }
        
        
        א תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • I
          ivrפון מומחה @אדם נערך לאחרונה על ידי

          פוסט זה נמחק!
          א 2 תגובות תגובה אחרונה תגובה ציטוט 0
          • א
            אדם @ivrפון נערך לאחרונה על ידי

            @ivrפון
            זה נראה לך דומה????

            I תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • א
              אדם @ivrפון נערך לאחרונה על ידי

              @ivrפון
              אני לא מחפש לקבל את רשימת הקבצים אלא רק את רשימת נתיבי השלוחות

              A תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • A
                amp Software 0 @אדם נערך לאחרונה על ידי

                @אדם
                אתה צריך להשתמש עם פונקציה רקורסיבית (שקוראת לעצמה שוב ושוב)
                הקוד שצירפת מאוד לא מובן ולא קריא
                מצו"ב קוד שעושה את העבודה עם פונקציה רקורסיבית
                (קח בחשבון שריצה על מערכת עם 200 שלוחות פירושה 200 קריאות API)

                <?php
                
                $did = $_REQUEST['did'];
                $pass = $_REQUEST['pass'];
                if ($did == null || $pass == null) {
                    print "error";
                    exit();
                } else {
                    $paths = [];
                    $path_start = 'ivr2:/';
                    get_paths_of_dir($did, $pass, $path_start, $paths);
                
                    print_r($paths);
                }
                
                
                function get_paths_of_dir($did, $pass, $dir, &$paths)
                {
                    $json = file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path=$dir");
                    $data = json_decode($json, true);
                    $dirs = $data['dirs'];
                    if ($dirs) {
                        foreach ($dirs as $dir) {
                            $path = $dir['what'];
                            $paths[] = $path;
                            get_paths_of_dir($did, $pass, $path, $paths);
                        }
                    }
                }
                
                
                א תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • א
                  אדם @amp Software 0 נערך לאחרונה על ידי

                  @amp-Software-0
                  לא הבנתי למה הקוד שלי לא עבד, עכ"פ תודה על הקוד שהבאת.

                  A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • A
                    amp Software 0 @אדם נערך לאחרונה על ידי

                    @אדם
                    יש כאן טעות בקוד (אם היית משתמש בלוג שגיאות זה היה מופיע לך מיד)

                     $dirs1 = $data1['dirs'];
                                $what1 = $dirs1['what'];
                    

                    אתה שם במשתנה $dirs1 את האיבר 'dirs' שמכיל מערך של תיקיות, שבכל אחד מהתיקיות יש את האיבר what, אבל המשתנה $dirs מכיל רק מערך של תיקיות בלי מפתח של wath, ולכן השורה הזו שגויה

                        $what1 = $dirs1['what'];
                    

                    כי באובייקט $dirs1 אין מפתח wath

                    הקוד הזה לכאורה אמור להיות תקין (לא בדקתי)

                    if ($did == null || $pass == null) {
                        print "error";
                        exit();
                    } else {
                        $json = file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path=ivr2:/");
                        $data = json_decode($json, true);
                        $dirs = $data['dirs'];
                        $my_arr = array();
                        $my_ar = array();
                        $my_a = array();
                        foreach ($dirs as $file) {
                            $what = $file['what'];
                            $my_arr[] = $what;
                        }
                        for ($my_ar = $my_arr, $my_a = $my_arr; $my_ar != null; $my_a = $my_ar) {
                            $my_ar = array();
                            foreach ($my_a as $file1) {
                                $json1 = file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token={$did}:{$pass}&path={$file1}");
                                $data1 = json_decode($json1, true);
                                $dirs1 = $data1['dirs'];
                                foreach ($dirs1 as $file2) {
                                    $what1 = $file2['what'];
                                    if ($what1 != null) {
                                        $my_arr[] = $what1;
                                        $my_ar[] = $what1;
                                    }
                                }
                            }
                        }
                    
                        print_r($my_arr);
                    }
                    
                    
                    א תגובה 1 תגובה אחרונה תגובה ציטוט 2
                    • א
                      אדם @amp Software 0 נערך לאחרונה על ידי

                      @amp-Software-0
                      תודה רבה!!!
                      אין לי מילים!!!
                      הקוד עובד מצויין, (המעלה שלו על על הקוד הקודם שהבאת, שהוא מציג קודם כל את כל השלוחות הראשיות ואח"כ את כל התתי שלוחות.).

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • הנושא סומן כנפתר  א אדם 
                      • I
                        ivrפון מומחה @אדם נערך לאחרונה על ידי

                        @אדם סליחה מתנצל

                        תגובה 1 תגובה אחרונה תגובה ציטוט 2
                        • פוסט ראשון
                          פוסט אחרון