נפתר קוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה
-
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
Warning: curl_getinfo() expects at least 1 parameter, 0 given in /storage/.../copywcurl.php on line 30
טעות שלי, ערכתי את הקוד בהודעה הקודמת
-
Array ( [url] => https://www.call2all.co.il/ym/api/FileAction?token=***%3A***&action=copy&what=ivr2%3A3%2F1%2F***.wav&target=ivr2%3A3%2F1%2F0%2F***.wav [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 7.010947 [namelookup_time] => 0.004131 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => 207.232.31.130 [certinfo] => Array ( ) [primary_port] => 443 [local_ip] => [local_port] => 0 )
אין לי מושג מה כתוב פה.
להתייאש ? -
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
url
האם ערכת את הפלט או שזה הפלט המקורי?
-
-
@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@שואל-ברצינות דקה...
אבל כשחיפשתי את זה, גיליתי שב- 000webhost.com, אתה מקבל על מה שאתה משלם ...(התכוונתי ל החינמית...)
הכל 'ייתכן' שנחסם...לא שמעתי על הגבלה כזו של חסימת curl ב- 000webhost.com, במקרה שלך בודאי השגיאה מציגה עיכוב במענה של ימות ולא חסימה גורפת של curl
יתכן שיש הגבלה על זמן הריצה של הקוד, אפשר לבדוק את זה עם הקוד הבא:<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); $url = 'https://www.call2all.co.il/ym/api/FileAction'; $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; $result = call_API($url, $query); //var_dump( $result['code'], $result['answer'], $result['error'] ); print_r( $result['info'] ); function call_API($url, $query = []){ $ch = curl_init(); if( !empty( $query ) ) $url .= '?'.http_build_query($query); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); $info = curl_getinfo($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return( ['code' => $http_code, 'answer' => $server_output , 'error' => ( $error_msg ?? 'no errors' ), 'info' => $info] ); }
אותי קצת בלבל הקוד הזה אם תוסיף עליו מעט הסברים אוכל לנסות לעזור אם צריך כמובן
-
@יואל-נחמיה לפי מה שאני רואה ב-stackoverflow יתכן שהפתרון שלך הוא באמצעות הארכת זמן הביצוע המקסימלי של curl:
<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); $url = 'https://www.call2all.co.il/ym/api/FileAction'; $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; $result = call_API($url, $query); //var_dump( $result['code'], $result['answer'], $result['error'] ); print_r( $result['info'] ); function call_API($url, $query = []){ $ch = curl_init(); if( !empty( $query ) ) $url .= '?'.http_build_query($query); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 42); $server_output = curl_exec($ch); $info = curl_getinfo($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return( ['code' => $http_code, 'answer' => $server_output , 'error' => ( $error_msg ?? 'no errors' ), 'info' => $info] ); }
-
@הלי כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@שואל-ברצינות דקה...
אבל כשחיפשתי את זה, גיליתי שב- 000webhost.com, אתה מקבל על מה שאתה משלם ...(התכוונתי ל החינמית...)
הכל 'ייתכן' שנחסם...לא שמעתי על הגבלה כזו של חסימת curl ב- 000webhost.com, במקרה שלך בודאי השגיאה מציגה עיכוב במענה של ימות ולא חסימה גורפת של curl
יתכן שיש הגבלה על זמן הריצה של הקוד, אפשר לבדוק את זה עם הקוד הבא:<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); $url = 'https://www.call2all.co.il/ym/api/FileAction'; $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; $result = call_API($url, $query); //var_dump( $result['code'], $result['answer'], $result['error'] ); print_r( $result['info'] ); function call_API($url, $query = []){ $ch = curl_init(); if( !empty( $query ) ) $url .= '?'.http_build_query($query); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); $info = curl_getinfo($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return( ['code' => $http_code, 'answer' => $server_output , 'error' => ( $error_msg ?? 'no errors' ), 'info' => $info] ); }
אותי קצת בלבל הקוד הזה אם תוסיף עליו מעט הסברים אוכל לנסות לעזור אם צריך כמובן
זה קוד php שמתחבר לשרת של ימות עם curl
הקוד מכיל שורות שנועדו לדבג את השגיאה ולמצוא את הנתון המשמעותי - אחרי כמה זמן חוזר timeout -
Notice: Undefined variable: cHandler in /storage/ssd4/862/20280862/public_html/copywcurl1.php on line 28 Warning: curl_setopt() expects parameter 1 to be resource, null given in /storage/ssd4/862/20280862/public_html/copywcurl1.php on line 28
והנ"ל (כנראה)
Array ( [url] => https://www.call2all.co.il/ym/api/FileAction?token=***%3A***&action=copy&what=ivr2%3A3%2F1%2F**.wav&target=ivr2%3A3%2F1%2F0%2F**.wav [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 7.010925 [namelookup_time] => 0.004117 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => 207.232.31.130 [certinfo] => Array ( ) [primary_port] => 443 [local_ip] => [local_port] => 0 )
-
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
Notice: Undefined variable: cHandler in /storage/ssd4/862/20280862/public_html/copywcurl1.php on line 28
Warning: curl_setopt() expects parameter 1 to be resource, null given in /storage/ssd4/862/20280862/public_html/copywcu
תיקנתי, העיקר הוא בשורה שהוספתי להגדיר זמן ריצה ארוך יותר ל-Curl, כרגע הוא מתנתק אחרי 7 שניות
-
@שואל-ברצינות
תכלית, מה לעשות עתה?[ומה עם הקוד הכי פשוט שלי?
(כפי שמופיע בהכותרת: "קוד להעתיק קובץ ע"י מספר בלבד")] -
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@שואל-ברצינות
תכלית, מה לעשות עתה?תעתיק שוב את הקוד מההודעה הקודמת ותעדכן אותי מה התוצאה
[ומה עם הקוד הכי פשוט שלי?
(כפי שמופיע בהכותרת: "קוד להעתיק קובץ ע"י מספר בלבד")]יש לך בעיה שגורמת לחיבור שלך לשרת של ימות להיסגר אחרי זמן קצר, לפני שמגיעה התשובה מימות
אם הפתרון האחרון שהבאתי יעזור אדע שזו באמת הייתה הבעיה -
Array ( [url] => https://www.call2all.co.il/ym/api/FileAction?token=**********%3A****&action=copy&what=ivr2%3A3%2F1%2F***.wav&target=ivr2%3A3%2F1%2F0%2F***.wav [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 7.036529 [namelookup_time] => 0.028298 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => 207.232.31.130 [certinfo] => Array ( ) [primary_port] => 443 [local_ip] => [local_port] => 0 )
-
@יואל-נחמיה אני חושב שהפתרון היחיד הוא לפנות לשירות הלקוחות של חברת האחסון
-
אין להם שרות למשתמשים חינמים אולי תנסה לפתוח שרת חדש עם מייל אחר
-
@kavkosher תמיד אפשר להשאיר את זה כאופציה
יש דרך לעקוף את זה?
@שואל-ברצינות@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
זה קוד php שמתחבר לשרת של ימות עם curl
הקוד מכיל שורות שנועדו לדבג את השגיאה ולמצוא את הנתון המשמעותי - אחרי כמה זמן חוזר timeoutזה שזה קוד php ידעתי שתי דברים אשמח לדעת
- מה זה timeout
2.את פירוש השורות ואיך זה מחזיר את הנתון שם לא הצלחתי להבין וממש אודה לך אם תוסיף קצת הסברים לשורות
אולי אוכל לנסות לעזור.
בברכה
- מה זה timeout
-
@הלי כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
מה זה timeout
תרגום מילולי: פסק זמן
זו ההגדרה שמתייחסת ל-"כמה זמן לנסות להמתין לתשובה" -
@הלי כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
2.את פירוש השורות ואיך זה מחזיר את הנתון שם לא הצלחתי להבין וממש אודה לך אם תוסיף קצת הסברים לשורות
<?php // !!! הגדרות לשרת - להציג שגיאות בכל מצב ומכל סוג, נועד עבור מצב פיתוח בלבד ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); // API-כתובת הקישור של ה $url = 'https://www.call2all.co.il/ym/api/FileAction'; // API-מערך של פרמטרים שמועברים ל $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; // קריאה לפונקציה עם המשתנים: קישור, נתונים. התוצאה נשמרת לתוך המשתנה שבתחילת השורה $result = call_API($url, $query); // הדפסת התוצאה בדרכים שונות var_dump( $result['code'], $result['answer'], $result['error'] ); print_r( $result['info'] ); function call_API($url, $query = []){ // אתחול הקריאה והכנסת ה'ידית' לתוך משתנה $ch = curl_init(); // שרשור הפרמטרים מהמערך אל הקישור if( !empty( $query ) ) $url .= '?'.http_build_query($query); // הגדרת כתובת הקריאה - כתובת הקישור שהועברה לפונקציה curl_setopt($ch, CURLOPT_URL, $url); // הכרחת הקריאה למצב ג'ט, לא חובה curl_setopt($ch, CURLOPT_POST, false); // הגדרת הקידוד המתאים לעברית curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // API-הגדרה לשרת לשמור את התגובה שתתקבל מה curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // הגדרה לשרת - כמה שניות להמשיך לנסות לקבל תגובה curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 42); // ביצוע הקריאה בפועל $server_output = curl_exec($ch); // קבלת נתוני הקריאה והכנסתם לתוך משתנה $info = curl_getinfo($ch); // תנאי - אם היו שגיאות - שמור את הנתונים לתוך משתנה if (curl_errno($ch)) { $error_msg = curl_error($ch); } // קבלת קוד התגובה, כגון 200 וכדומה $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // סגירת החיבור curl_close ($ch); // הפונקציה מחזירה מערך עם כל הנתונים return( ['code' => $http_code, 'answer' => $server_output , 'error' => ( $error_msg ?? 'no errors' ), 'info' => $info] ); }
-
@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@פיסטוק-פרווה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
בגירסת php 8.0 לא נתמך file_get_contents().
בתיעוד הרשמי דווקא כתוב שכן
אני בעצמי משתמש עם זה ב-PHP 8.2אני כתבתי גירסה 8 ולא 8.2 שאני פשוט לא מכיר אותה,
curl וודאי לא עובד שם -
@פיסטוק-פרווה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@פיסטוק-פרווה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
בגירסת php 8.0 לא נתמך file_get_contents().
בתיעוד הרשמי דווקא כתוב שכן
אני בעצמי משתמש עם זה ב-PHP 8.2אני כתבתי גירסה 8 ולא 8.2 שאני פשוט לא מכיר אותה,
curl וודאי לא עובד שםחבל לכתוב נתונים לא מוסמכים
curl כבר קיים מגרסה 4 של PHP...
-
@שואל-ברצינות אז מה נשאר בסוף עם @יואל-נחמיה יש דרך לעזור לו?