@ivrפון הקוד אחרי שסידרתי ```
<?php
$ApiDID = $_GET['ApiDID'];
$pass = $_GET['pass'];
$path1 = $_GET['path1'];
$path2 = $_GET['path2'];
$tiz = $_GET['tiz'];
$what = $_GET['what'];
// קריאת נתונים מ-API
$url1 = @file_get_contents("https://www.call2all.co.il/ym/api/GetIVR2Dir?token=$ApiDID:$pass&path=$path2&filesLimit=1&orderDir=desc");
if ($url1 === false) {
print "id_list_message=m-1080."; // שגיאה בקריאה ל-API
exit;
}
$data = json_decode($url1, true);
$ok1 = $data["responseStatus"];
if ($ok1 !== 'OK' || !isset($data["files"])) {
print "id_list_message=m-1080."; // לא נמצא קובץ או שגיאה ב-API
exit;
}
$tz = $data["files"];
// סינון קבצים בסיומות '.wav' ו-'.tts'
$filteredTz = array_filter($tz, function ($value) {
return (substr($value, -4) === '.wav' || substr($value, -4) === '.tts');
});
// חיפוש הקובץ הגבוה ביותר
$highestValue = "";
foreach ($filteredTz as $value) {
$parts = explode('/', $value);
$lastPart = end($parts); // לוקח את החלק האחרון מהנתיב
$lastPartWithoutExtension = substr($lastPart, 0, -4); // מסיר את הסיומת
if ($lastPartWithoutExtension > $highestValue) {
$highestValue = $lastPartWithoutExtension;
}
}
// העתקת הקובץ
$url = @file_get_contents("https://www.call2all.co.il/ym/api/FileAction?token=$ApiDID:$pass&what=$path1/$what&target=$path2/$highestValue&action=copy");
if ($url === false) {
print "id_list_message=m-1080."; // שגיאה בהעתקת הקובץ
exit;
}
$data = json_decode($url, true);
if (empty($data) || !isset($data["success"]) || $data["success"] !== 'true') {
print "id_list_message=m-1080."; // שגיאה בתשובה מה-API
exit;
}
// הפעלת צינטוק
$url2 = @file_get_contents("https://www.call2all.co.il/ym/api/RunTzintuk?token=$ApiDID:$pass&TzintukTimeOut=8&phones=tzl:$tiz");
if ($url2 === false) {
print "id_list_message=m-1080."; // שגיאה בהפעלת צינטוק
exit;
}
$data = json_decode($url2, true);
$ok2 = $data["responseStatus"];
if ($ok2 == 'OK') {
print "id_list_message=m-2573"; // הצלחה בהפעלת צינטוק
} else {
print "id_list_message=m-1080."; // שגיאה בהפעלת צינטוק
}
print "ok"; // סיום
?>
שיפורים בקוד:
הוספת טיפול בשגיאות: הוספתי את השימוש ב־@file_get_contents() יחד עם בדיקות אם הקריאה מחזירה false, כלומר אם הייתה בעיה בהורדת הנתונים מה-API.
סינון קבצים: השתמשתי ב־substr במקום str_ends_with למקרה שאתה עובד עם גרסאות ישנות של PHP.
ביקורת נתונים: לפני כל שלב קריטי, הוספתי בדיקות אם התשובה מכילה את המידע הצפוי (כמו קובץ או הודעת הצלחה).
חיפוש קובץ גבוה ביותר: הפכתי את לולאת החיפוש קצת יותר ברורה ומסודרת, כולל שימוש ב־end() כדי לקחת את החלק האחרון של הנתיב בצורה יותר ברורה.