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

הדרך הטובה ביותר להכנת בקשה ל-GET עם שלל של פרמטרים.

הרבה פעמים, במיוחד כאשר אנו פונים ל-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, '', '&');

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

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

פוסטים נוספים שכדאי לקרוא

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

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

FedRAMP & FIPS מבוא למתחילים

פרק מיוחד, לצד הקלטה של פרק של עושים תוכנה על אחת התקינות החשובות ביותר עבור חברות שסביר להניח שלא הכרתם

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

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

גלילה לראש העמוד