נפתר אשמח מאוד לגלות למה הקוד לא תקין
-
<?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); } ?>
הקוד אמור להדפיס מערך של הנתיבים של כל השלוחות ותתי השלוחות במערכת, ובפועל מדפיס רק את השלוחות שבשלוחה הראשית.
אשמח מאד לסיוע ועזרה!!! -
@אדם
יש כאן טעות בקוד (אם היית משתמש בלוג שגיאות זה היה מופיע לך מיד)$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); }
-
פוסט זה נמחק! -
@ivrפון
זה נראה לך דומה???? -
@ivrפון
אני לא מחפש לקבל את רשימת הקבצים אלא רק את רשימת נתיבי השלוחות -
@אדם
אתה צריך להשתמש עם פונקציה רקורסיבית (שקוראת לעצמה שוב ושוב)
הקוד שצירפת מאוד לא מובן ולא קריא
מצו"ב קוד שעושה את העבודה עם פונקציה רקורסיבית
(קח בחשבון שריצה על מערכת עם 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); } } }
-
@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); }
-
@amp-Software-0
תודה רבה!!!
אין לי מילים!!!
הקוד עובד מצויין, (המעלה שלו על על הקוד הקודם שהבאת, שהוא מציג קודם כל את כל השלוחות הראשיות ואח"כ את כל התתי שלוחות.). -
-
@אדם סליחה מתנצל