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

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

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

      <?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
                        • פוסט ראשון
                          פוסט אחרון