שליחת פרמטרים ב-GET ב-PHP

הרבה פעמים, במיוחד כאשר אנו פונים ל-WebService זה או אחר, ולא משנה אם ב-SOAP או ב-REST או אם אנו משתמשים ב-cURL או בשיטה אחרת, אנו זקוקים לשלוח בקשת GET, לפעמים ארוכה מאד.

למי שלא זוכר, בקשת GET נראית ככה:
http://example.com/?key1=value1&key2=value2&key3=value3
וכך הלאה והלאה, כאשר בקשות ה-GET יכולות להיות ארוכות לפעמים עד מאד.

לא מעט פעמים אני נתקל בקוד כזה:


$request = "http://example.com?".$key1."=".$value1.$key2."=".$value2.$key3."=".$value3;

או בנגזרותיו השונות. למען הסר ספק, זה קוד שעובד וגם קל יחסית לקריאה (בגלל זה אני משתמש בו בעיקר בדוגמאות), אבל זה לא קוד שקל לתחזק אותו, הרי אם אני רוצה להכניס פרמטרים נוספים או לבצע שינויים, שלא לדבר על דיבוג הסיפור הזה, אני מתחיל להסתבך.

בדיוק בשביל זה יש לנו את פונקצית http_build_query שהיא פשוטה מאד. היא מקבל מערך ומחזירה מערך מקודד ומוכן לשליחה ולשימוש בכל בקשת GET שהיא. למשל:


$example_args = array($key1 => $val1, $key2 => $val2, $key3 => $val3);
$request = "http://example.com?".http_build_query($example_args, '', '&');

פשוט נורא, לא? השימוש בפרמטר השני והשלישי לא נדרשים אבל אני ממלא אותן מכל מיני סיבות (אפשר לקרוא בדוקומנטציה בדיוק למה).

נשאלת השאלה למה בדיוק להשתמש בזה? הרי יותר קל להשתמש במה שמוכר ובטוח, לא? התשובה היא יכולת תחזוקה של קוד. הרבה יותר קל לתחזק וגם להבין קוד שבנוי היטב, ושימוש במערך שהוא טבעי לנו, כמתכנתים, להבין ולתקן במידת הצורך יותר ממחרוזת טקסט ארוכה ומסרבולת. גם הקוד כך עמיד יותר אם אני רוצה לשנותו – וזה מה שמפריד מתכנת טוב ממתכנת מעולה.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (1 הצבעות, ממוצע: 5.00 מתוך 5)

תגיות: פורסם בקטגוריה: פתרונות ומאמרים על פיתוח אינטרנט

אל תשארו מאחור! יש עוד מה ללמוד!

הצטרפו לעדכונים!

העדכונים נשלחים אך ורק כאשר האתר מתעדכן.

רן בר-זיק

רן בר-זיק כותב כל המאמרים באינטרנט ישראל, מפתח אינטרנט מנוסה במגוון שפות ופלטפורמות.
ניתן ליצור איתי קשר באמצעות:
כתובת המייל שלי: info@internet-israel.com.
פרופיל הלינקדאין שלי
הטוויטר שלי
פרופיל הפייסבוק שלי
אני תמיד שמח לייעץ ולעזור, אך בשל עומס הפניות הרב, אני לא תמיד מצליח לענות במהירות.

מאמרים אחרונים