Forum und email

משהו שימושי

הבה נעשה משהו שימושי יותר עכשיו. בדוגמא זו אנו הולכים לבדוק באיזה דפדפן אינטרנט משתמש הגולש שלנו. על מנת לעשות זאת עלינו לבדוק את מחרוזת הuser agent שדפדפן האינטרנט שולח כחלק משאילתת HTTP. מחרוזת זו מאופסנת במשתנה. משתנים תמיד מתחילים ב$. המשתנה המעניין אותנו כרגע הוא$_SERVER["HTTP_USER_AGENT"].

Note: $_SERVER הוא משתנה שמור מיוחד בPHP שמכיל את כל המידע אודות השרת. הוא ידוע כ Autoglobal (או Superglobal). עיין בפרק Autoglobals שבמדריך לאינפורמציה נוספת. משתנים מיוחדים אלו הוכנסו לראשונה בגירסה » 4.1.0. לפני כן היו בשימוש המערכים $HTTP_*_VARS לדוגמא, $HTTP_SERVER_VARS. למרות שהשימוש במערכים אלו בעייתי הוא עדיין קיים בקודים ישנים רבים. (עיין בהערה אודות קוד ישן)

להצגת המשתנה ניתן לכתוב פשוט

Example#1 הצגת משתנה (איבר במערך)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

פלט טיפוסי של סקריפט זה יהיה:

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
    

ישנם הרבה סוגי משתנים בPHP. בדוגמא לעיל הדפסנו איבר של מערך מערכים יכולים להיות מאוד שימושיים.

$_SERVER הוא רק משתנה אחד שנוצר אוטומטי על ידי הPHP. רשימה מלאה קיימת בקטגוריית המשתנים השמורים שבמדריך. דרך נוספת לראות את הרשימה היא על ידי הסקריפט הבא:

Example#2 הצגת כל המשתנים הקבועים מראש phpinfo()

<?php phpinfo(); ?>

אם תפנה אל הקובץ בעזרת הדפדפן תראה רשימה מלאה של אינפורמציה לגבי PHP ובתוכה המשתנים הנ"ל.

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

Example#3 דוגמא לשימוש במבנה שליטה ופונקציות

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo 
"You are using Internet Explorer<br />";
}
?>

הפלט של הסקריפט יהיה משהו כמו

You are using Internet Explorer<br />

כאן הכנסנו כמה מושגים חדשים דוגמת משפט if אם יש לך הכרות עם תחביר בסיסי בשפת C הקוד יראה לך הגיוני. אם אין לך רקע בC או שפות תכנות אחרות, מומלץ לך להשיג ספר PHP למתחילים ולקרוא מספר פרקים מהפרקים הראשונים שלו, או לקרוא את חלק פירוט תכונות השפה במדריך. רשימת ספרי PHP אתה יכול למצוא » כאן.

המושג השני שהצגנו הוא הקריאה לפונקציה strstr() . strstr() היא פונקצית PHP שמחפשת מחרוזת אחת בתוך השניה. במקרה דנן, אנו מחפשים את המחרוזת "MSIE" בתוך $_SERVER["HTTP_USER_AGENT"]. אם המחרוזת נמצאה הפונקציה מחזירה TRUE אחרת הפונקציה מחזירה FALSE. אם אכן הוחזר TRUE, ההתניה if מקבלת את הערך TRUE והקוד שבתוך {הסוגריים המסולסלות} מתבצע. אחרת לא. תרגיש חופשי ליצור דוגמאות דומות, בעזרת if, else, ופונקציות נוספות כגון strtoupper() וstrlen(). כל אחד מהעמודים המתארים את הפונקציה מכיל דוגמאות שונות. אם אתה לא בטוח כיצד להשתמש בפונקציה, מן הסתם תרצה ללכת ולקרוא כיצד להבין את הפרוטו של הפונקציות והקטע פונקציות PHP.

הבה נלך צעד קדימה ונדגים כיצד להכנס ולצאת ממצב PHP אפילו באמצע קטע קוד:

Example#4 שילוב PHP וHTML

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr must have returned true</h3>
<center><b>You are using Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr must have returned false</h3>
<center><b>You are not using Internet Explorer</b></center>
<?php
}
?>

הפלט של הסקריפט יהיה משהו דומה ל:

<h3>strstr must have returned true</h3>
<center><b>You are using Internet Explorer</b></center>

במקום להשתמש בפונקצית הecho אנחנו יכולים פשוט לצאת מהPHP ולכתוב את הדברים כHTML. הדבר החשוב והשימושי כאן הוא שמבנה השפה על התנאים וקטעי הקוד שבה נשמר. רק אחד מקטעי הHTML ישלח לדפדפן בהסתמך על תוצאת הפונקציה strstr() אם היא TRUE או FALSE במילים אחרות, אם המחרוזת "MSIE" נמצאה או שלא.