מספר הקובץ הגבוה בשלוחה
-
@יוסל-ה בשפת php
הבעיה שחלק מהקבצים זה גם קבצי מערכת. יש אפשרות להציג את הקובץ הגבוה במספר ולא האחרון במערך?
תודה רבה. -
@ממפ
בהצלחה!function search($what){ if($what == "main"){ $q = ""; }else{ $q = $what; } $url = "https://www.call2all.co.il/ym/api/GetIvrTree?token=0773137770:1234&path=ivr2:$q"; $cURLConnection = curl_init(); curl_setopt($cURLConnection, CURLOPT_URL, $url); curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true); $phoneList = curl_exec($cURLConnection); curl_close($cURLConnection); $a = json_decode($phoneList, true)['items']; $b = array(); for ($i=0; $i < count($a); $i++) { $b[$i] = $a[$i]['fileType']; } $s = array_keys($b , "AUDIO"); $f = array_keys($b , "BIN"); $g = array_merge($s , $f); array_multisort($g); $files = array(); for ($i=0; $i < count($g); $i++) { $t = $g[$i]; $files[$i] = $a[$t][name]; } return $files; } //כדי לראות מה יש בשלוחה הראשית print_r(search("main")); //כדי לראות מה יש בשלוחה מסויימת (ניתן להחליף את ה 1 לכל שלוחה שרוצים כמו 1/1 וכו׳ print_r(search("1"));
לא לשכוח להחלף את ה token למספר שלך
-
@bc98400 זה מאד נחמד אבל יש בזה כמה חסרונות,
אולי תלוי מה המטרה, אבל אם למשל רוצים לדעת מה הקובץ הגבוה בשלוחה כדי להעלות קובץ יותר גבוה, יש צורך לבדוק גם את הקבצים עם הסיומת TTS, כמו"כ יש להפריד את הודעות המערכת, כלומר כל הקבצים המתחילים בM.
(אני בניתי בעבר פונקציה כזו, אבל שבנויה על המחלקה) -
@dudu @ממפ
טוב זה ממש פשוט.
מה שהוא ביקש שיהיה לו מערך בלי הקבצי מערכת וזה מה שיש באופציה כאן
אבל אם אתה רוצה שיהיה גם בלי הקבצי ה M למינהם נסה את זהfunction search($what){ if($what == "main"){ $q = ""; }else{ $q = $what; } $url = "https://www.call2all.co.il/ym/api/GetIvrTree?token=0773137770:1234&path=ivr2:$q"; $cURLConnection = curl_init(); curl_setopt($cURLConnection, CURLOPT_URL, $url); curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true); $phoneList = curl_exec($cURLConnection); curl_close($cURLConnection); $a = json_decode($phoneList, true)['items']; $b = array(); for ($i=0; $i < count($a); $i++) { $b[$i] = $a[$i]['fileType']; } $s = array_keys($b , "AUDIO"); $f = array_keys($b , "BIN"); $g = array_merge($s , $f); array_multisort($g); $files = array(); for ($i=0; $i < count($g); $i++) { $t = $g[$i]; $tt = stripos($a[$t][name],"M",0); if ($tt === 0) { }else{ $files[$i] = $a[$t][name]; } } return $files; } //בשביל להדפיס את כל המערך print_r(search("main")); //בשביל להדפיס את הערך האחרון במערך $h = search("main"); echo $h[count($h)-1];
ומה שכתבת שצריך לבדוק גם בtts זה לא נכון כי זה כבר מסודר לפי המספרים כך שהערך האחרון הוא הערך של הקובץ הגבוה
-
@bc98400 זה ממש מצוין!
איך אני משלים את זה ל-3 ספרות כלומר שאם הקובץ הגבוה הוא 005 שיכתוב 006?
כשאני מוסיף על מה ששלחת כך:$ee = $h[count($h)-1] + 1;
ואני מקבל את הספרה 6
-
@ממפ תכתוב את הפונקציה strtr שכתבתי לך בפוסט השני בשביל למחוק את ה .wav ואז תוסיף אחד
-
@bc98400 אמר במספר הקובץ הגבוה בשלוחה:
ומה שכתבת שצריך לבדוק גם בtts זה לא נכון כי זה כבר מסודר לפי המספרים כך שהערך האחרון הוא הערך של הקובץ הגבוה
ואם הקובץ הגבוה ביותר הוא TTS?
-
@dudu אז זה יהיה האחרון במערך
-
@bc98400 אבל במערך יש רק קבצי AUDIO וזה לא כולל את קבצי הTTS!!
-
@dudu @ממפ
נכון זה היה הטעות שלי
זה המתוקןfunction search($what){ if($what == "main"){ $q = ""; }else{ $q = $what; } $url = "https://www.call2all.co.il/ym/api/GetIvrTree?token=0773137770:1234&path=ivr2:$q"; $cURLConnection = curl_init(); curl_setopt($cURLConnection, CURLOPT_URL, $url); curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true); $phoneList = curl_exec($cURLConnection); curl_close($cURLConnection); $a = json_decode($phoneList, true)['items']; $b = array(); for ($i=0; $i < count($a); $i++) { $b[$i] = $a[$i]['fileType']; } $s = array_keys($b , "AUDIO"); $f = array_keys($b , "TTS"); $g = array_merge($s , $f); array_multisort($g); $files = array(); for ($i=0; $i < count($g); $i++) { $t = $g[$i]; $tt = stripos($a[$t][name],"M",0); if ($tt === 0) { }else{ $files[$i] = $a[$t][name]; } } return $files; } //בשביל להדפיס את כל המערך print_r(search("main")); //בשביל להדפיס את הערך האחרון במערך $h = search("main"); echo $h[count($h)-1];
-
@bc98400 אמר במספר הקובץ הגבוה בשלוחה:
@ממפ תכתוב את הפונקציה strtr שכתבתי לך בפוסט השני בשביל למחוק את ה .wav ואז תוסיף אחד
יש לי בעיה כי תכלס כשאני מוסיף 1 זה מוריד את 2 האפסים וזה נהיה עם ספרה אחת בלבד..
-
@ממפ הפתרון שאני מצאתי לזה הוא פשוט לבדוק, אם המשתנה קטן מ10 להוסיף לו 2 אפסים ואם הוא קטן מ100 להוסיף 0 אחד, כך אני עשיתי...
משהו כזה:if($counter==0){ $i=sprintf("000"); echo $i; } elseif($i<9){ $y=sprintf("00%u",$i+1); echo $y; } elseif($i<99){ $y=sprintf("0%u",$i+1); echo $y; } else { $i+=1; echo $i; }
-
@bc98400 ניסיתי להתאים את זה גם לפרייבט בצורה הזו ולא הצלחתי.
$url = "call2all.co.il"; if ($private =="yes"){$url = "private.call2all.co.il";} $url = "https://$url/ym/api/GetIvrTree?token=0773137770:1234&path=ivr2:$q";
איך עובדים עם זה?
תודה רבה. -
@ממפ מה לא עובד לך?
זה נראה בסדר -
@bc98400 בדקתי שוב, עכשיו זה עובד מצויין!
יכול להיות שצריך להכניס את זה לתוך הבלוק של הפונקציה?
ושמתי לב שאם אני שולח עוד פקודה מחוץ לפונקציה צריך להכניס את זה שוב. -
@ממפ ברור שצריך להכניס לפונקציה אתה יכול גם למחוק את הפונדציה ולעשות את זה רגיל פשוט זה נוח יותר כי זה נפרד מכל הקוד
-
יש לי שלוחה עם כמה עשרות אלפי קבצים
כשאני שולח פקודה GetIVR2Dir אני מקבל שגיאהדרך אגב גם באתר זה נופל(אפילו שמוגדר 20 קבצים)