שלום רב,
במאמר זה אסביר כיצד לעשות שימוש בפונקצית cURL בסיסית אשר על ידיה נוכל לקבל מידע על מקום התחברותו של המשתמש.
במאמר אעשה שימוש בPHP, cURL, ביטויים רגולרים.
קודם כל, למה הפונקציה הזאת משמשת אותנו?
קבלת מידע על מקום התחברותו של המשתמש(המדינה בלבד) יכולה לעזור לנו להתאים את האתר במיוחד אליו, ליצור נתח שוק ועוד שימושים רבים.
אני אישית בניתי את הפונקציה בכדי למנוע ממשתמשים לא ישראלים להתחבר לאתר שלי.
הינה הפונקציה:
קוד PHP:
function getCountryNameByHostname($hostname) {
// Built By Hagai Bloch Gadot
$hostname = strip_tags($hostname);
$url = "http://www.geoiptool.com/en/?IP=" . $hostname;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($curl);
curl_close($curl);
$string = '/<td align="left" class="arial_bold"><a href="http:\/\/en.wikipedia.org\/wiki\/(.*?)" target="_blank"> (.*?)<\/a>/';
preg_match($string, $page, $match);
return $match[1];
}
עכשיו בואו נפשט את הפונקציה,
שם הפונקציה - getCountryNameByHostname
מספר הפרמטרים שהפונקציה מקבלת - 1 ~ $hostname
הפעולות שבהן נעשה שימוש בפונקציה:
curl_init
curl_setopt
curl_exec
curl_close
preg_match
עכשיו נפרט על כל פונקציה ופונקציה:
curl_init - פונקציה הבונה עצם מסוג cURL על פי כתובת, היא מחזירה ערך ולכן חיבת להיות מוצבת למשתנה.
קוד PHP:
curl_init($URL); // Wrong
$curl = curl_init($URL);//Right
לפירוט על כל פונקציה ופונקציה לחצו על שמה.
curl_setopt - פונקציה המגדריה לאוביקט cURL אופציות שונות, השמיוש בפונקציה הוא:
קוד PHP:
curl_setopt($cURLObjectName, OPTION_NAME, $value);
לרשימת ה OPTION_NAME הכנסו לדף הפונקציה באתר PHP. האופציה בה אני עושה שימוש נקראת : CURLOPT_RETURNTRANSFER
במידה והאופציה מוגדרת לtrue הפונקציה curl_exec אשר עליה נדון בהמשך תחזיר את הדף שקיבלה כמחרוזת לתוך משתנה ולא תפלוט את הערך.
$cURLObjectName - זהו שם העצם מסוג cURL שהגדרנו בעזרת הפונקציה curl_init.
curl_exec - הפונקציה אשר מריצה את הcURL ומקבלת את קוד המקור של הURL השגדרנו בהתחלה, במידה והגדנו את CURLOPT_RETURNTRANSFFER חובה עלינו להכניס את הפונקציה curl_exec לתוך משתנה, אחרת אין זאת חובה והקוד יפלט ישירות.
curl_close - הפונקציה בעצם מוחקת מן הזכרון את העצם שהגדרנו בהתחלה.
preg_match - פונקציה אשר מחזירה לנו את התוצאות שהתקבלו ממחרוזת על ידי השוואתה לביטוי רגולרי.
על ביטוי רגולרי נרחיב בהמשך.
זוהי בעצם הפונקציה, ניתן לשלב אותה בכל אתר שתצרצו, היא ציבורית לחלוטין.
מקווה שתמצאו בה שימוש,
חגי.