בהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש
-
אני מריץ קישור שיש בתוכו משתנים עם אותיות וכשאני מדפיס את המשתנה הכל בסדר, אך כשאני מפעיל את הקישור שהוא אמור לשלוח שם את התווים לאיזשהוא מקום, אז שם הם מתקבלים בג'יבריש.
מה עושים?זה בעיה דומה למה שפירסמתי פה, @איש-נחמד @לעזור-לכולם @yossiz
-
שמואל ש.השיב לyossiz ב 29 בדצמ׳ 2022, 18:29 נערך לאחרונה על ידי שמואל ש. 1 בינו׳ 2023, 12:47
<?php $name = 'ניסוי; $subject = 'ניסיון; $body = 'נסיון; $filing = '1f_******cM'; $recipient = '******@GMAIL.COM'; $image = file_get_contents("https://script.google.com/macros/s/AKfycbwO5ZjANufUiWfAsijJhinMewr-Z1Blquzh4DtCawM1cjGDeHTaQio0gAGIU7WcKms5ww/exec?name=$name&subject=$subject&body=$body&filing=$filing&recipient=$recipient"); ?> -
@שמואל-ש
אולי הבעיה היא ב script.google.com ?
אפשרות נוספת, תנסה לכתובfile_get_contents(urlencode($url))
-
@לעזור-לכולם כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
אולי הבעיה היא ב script.google.com ?
דהיינו? בהרצת הסקריפט עצמו? ניסיתי להריץ אותו בדיוק כך בגוגל סקריפט-בסקריפט אחר, ונהיה לי טוב מאוד!
-
@לעזור-לכולם כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
אפשרות נוספת, תנסה לכתוב
file_get_contents(urlencode($url))הקישור כלל לא מופעל-הבקשה לא מגיעה בכלל
-
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
@לעזור-לכולם כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
אפשרות נוספת, תנסה לכתוב
file_get_contents(urlencode($url))הקישור כלל לא מופעל-הבקשה לא מגיעה בכלל
ניסית עם curl ?
עם תווים באנגלית הבקשה כן נשלחת? -
@לעזור-לכולם אגב, אם עשיתי בסקריפט שאת הקישור שלו אני מריץ שיחזיר ערך כלשהוא, איך אני מדפיס את הערך המוחזר?
-
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
ניסית עם curl ?
דהיינו?
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
עם תווים באנגלית הבקשה כן נשלחת?
עם אנגלית זה נשלח עם התווים הרגילים
עריכה: התכוונת עם urlencode ? אז גם באנגלית לא נשלח -
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
דהיינו?
function callGoogleAPI($url, $query){ if(!is_array($query))return false; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($query)); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($http_code != 200) return( ['status' => false, 'answer' => $http_code ] ); curl_close ($ch); return( ['status' => true, 'answer' => $server_output;] ); } $url = 'https://script.google.com/macros/s/AKfycbwO5ZjANufUiWfAsijJhinMewr-Z1Blquzh4DtCawM1cjGDeHTaQio0gAGIU7WcKms5ww/exec'; $query = [ 'name' => $name, 'subject' => $subject, 'body' => $body, 'filing' => $filing, 'recipient' => $recipient ]; $call_api = callGoogleAPI( $url, $query ); var_dump( $call_api ); -
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
@איש-נחמד זה לPHP? איפה להכניס את זה? בנוסף/בקובץ אחר? ומה הפרמטר השני לשליחה?
זו דוגמא למימוש של curl ב-PHP, ממליץ לך לחפש מידע על הפונקציה הזו:
https://www.php.net/manual/en/ref.curl.php
כל השאר די מקביל לקוד המקורי שלך עם מבניות קצת שונה בסה"כ -
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
@איש-נחמד זה להכניס בסוף הקובץ שלי-אחרי ההצהרה על המשתנים במקום הרצת הקישור?
ניסית לבדוק מה המשמעות של הפונקציות בהן עשיתי שימוש?
-
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
הקישור כלל לא מופעל-הבקשה לא מגיעה בכלל
האם הכנסת את הURL למשתנה $url?
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
אגב, אם עשיתי בסקריפט שאת הקישור שלו אני מריץ שיחזיר ערך כלשהוא, איך אני מדפיס את הערך המוחזר?
תכתוב echo לפני הרצת הקישור [אם אתה מקבל בחזרה מהסקריפט JSON, זה לא ייראה לך כסטרינג רגיל תפעיל על זה את פונקציית json_decode ותיגש לזה כמערך]
-
@לעזור-לכולם כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
האם הכנסת את הURL למשתנה $url?
איפה יש כזה משתנה?
@לעזור-לכולם כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
תכתוב echo לפני הרצת הקישור
כתבתי echo על $image וחזר לי איזשהוא כתובת
-
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
כתבתי echo על $image וחזר לי איזשהוא כתובת
מה חזר לך?
-
איש נחמדהשיב לשמואל ש. ב 1 בינו׳ 2023, 12:40 נערך לאחרונה על ידי איש נחמד 1 בינו׳ 2023, 12:40
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
@איש-נחמד חזר לי כבר מה שהוחזר באמת.
אבל עכשיו הטמעתי את זה בימות המשיח-קובץ PHP שקורא לגוגל סקריפט, אך בקריאה הוא משום מה מוסיף & בסוף, יש לך מושג למה?
וכן התווים עדיין בג'יבריש!אני לא יכול לדעת מה הבעיה אם לא תביא את הפלט
נסה את זה:
var_dump( urldecode( $image ) );
-
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
אני לא יכול לדעת מה הבעיה אם לא תביא את הפלט
איזה פלט? הקוד לא מחזיר כלום! הוא פשוט שולח נתונים לגוגל סקריפט
-
שמואל ש.השיב לאיש נחמד ב 1 בינו׳ 2023, 12:41 נערך לאחרונה על ידי שמואל ש. 1 בינו׳ 2023, 12:42
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
נסה את זה:
var_dump( urldecode( $image ) );בקטע שאחרי הרצת הקוד? או שזה מריץ את הקוד? ואם זה מריץ את הקוד, אז להכניס אותו לתוך משתנה?
-
שמואל ש.השיב לאיש נחמד ב 1 בינו׳ 2023, 12:46 נערך לאחרונה על ידי שמואל ש. 1 בינו׳ 2023, 12:48
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
נסה את זה:
לכתוב ככה
<?php $name = 'ניסוי; $subject = 'ניסיון; $body = 'נסיון; $filing = '1f_********cM'; $recipient = '******@GMAIL.COM'; $image = ("https://script.google.com/macros/s/AKfycbwO5ZjANufUiWfAsijJhinMewr-Z1Blquzh4DtCawM1cjGDeHTaQio0gAGIU7WcKms5ww/exec?name=$name&subject=$subject&body=$body&filing=$filing&recipient=$recipient"); var_dump( urldecode( $image ) ); ?> ?
-
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
לכתוב ככה
מה האופציות הנוספות שיכולות להיות לדעתך?
-
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
מה האופציות הנוספות שיכולות להיות לדעתך?
להכניס את השורה האחרונה למשתנה? או מה?
-
@שמואל-ש כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
להכניס את השורה האחרונה למשתנה?
האם ידוע לך מה עושות הפונקציות:
urldecode
,var_dump
?
אם לא - אני ממליץ לך להיכנס לאתר הרשמי וללמוד: https://php.net -
@איש-נחמד כתב בבהרצת קישור בPHP ע"י file_get_contents עם תווים בעברית, התווים נהיים ג'יבריש:
urldecode
כן, ידוע לי, הפונקצייה urldecode מקודדת כתובות URL, והפונקצייה var_dump מחזירה את ה'מידע' על המשתנה, אך איך צריך לכתוב את זה-זה לא הבנתי, הרי לכאורה היו צריכים פשוט לעשות
$image = file_get_contents(urldecode("https://script.google.com/macros/s/AKfycbwO5ZjANufUiWfAsijJhinMewr-Z1Blquzh4DtCawM1cjGDeHTaQio0gAGIU7WcKms5ww/exec?name=$name&subject=$subject&body=$body&filing=$filing&r)ecipient=$recipient"); לא?
ואגב, זה שמודפס לי המידע לא כ"כ עוזר, כי זה בתוך קו של ימות המשיח -
@איש-נחמד כרגע הוא כותב לי שזה STRING, והוא מציג לי את כל הקישור בעברית ותקין לחלוטין! אז איפה הקישור מתפקסס?
גם בדוחו"ת של ימות המשיח ששם רואים את הקישור שהופעל (הקישור לקוד ב-PHP שמפעיל את גוגל סקריפט) גם רואים שהוא שלח אותם בעברית, ככה שהקישורים נשלחים תקינים ואיפה שהוא בדרך הוא מתג'ברש...-כנראה בשליחה למעשה -
איש נחמדהשיב לשמואל ש. ב 1 בינו׳ 2023, 17:25 נערך לאחרונה על ידי איש נחמד 1 בינו׳ 2023, 17:26
<?php $name = 'שם'; $subject = 'נושא'; $body = 'תוכן'; $filing = '1f_cM'; $recipient = 'A1234@GMAIL.COM'; function callGoogleAPI($url, $query){ if(!is_array($query))return false; $ch = curl_init(); $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); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($http_code != 200) return( ['status' => false, 'answer' => $http_code ] ); curl_close ($ch); return( ['status' => true, 'answer' => $server_output] ); } $url = 'https://script.google.com/macros/s/AKfycbwO5ZjANufUiWfAsijJhinMewr-Z1Blquzh4DtCawM1cjGDeHTaQio0gAGIU7WcKms5ww/exec'; $query = [ 'name' => $name, 'subject' => $subject, 'body' => $body, 'filing' => $filing, 'recipient' => $recipient ]; $call_api = callGoogleAPI( $url, $query ); var_dump( $call_api, $call_api['answer'] );
פוסט 7 מתוך 30