משתנים מוגדרים מראש

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

למרות גורמים אלה, לפניכם רשימה של משתנים מוגדרים מראש הזמינים בהתקנה רגילה של PHP בגרסה 3 כמודול של שרת Apache 1.3.6.

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

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

משתנים של שרת Apache

משתנים אלו מוגדרים על-ידי שרת Apache. בעת הפעלת שרת מסוג זה יתכן שחלק ממשתנים אלו לא מוגדרים ויתכן שיוגדרו משתנים אחרים שאינם רשומים פה. רוב המשתנים מפורטים במפרט CGI 1.1 וסביר שיהיו זמינים לשימוש.

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

$GATEWAY_INTERFACE

גרסת ה-CGI שהשרת תומך בה. (בדרך-כלל 'CGI/1.1' ).

$SERVER_NAME

שם ה-host שתחתיו רץ הסקריפט הנוכחי. אם הסקריפט רץ תחת host וירטואלי, משתנה זה יכיל את שם ה-host הוירטואלי.

$SERVER_SOFTWARE

מחרוזת הזיהוי של השרת שמועברת בכותרים (headers) בעת משוב לפניות (requests).

$SERVER_PROTOCOL

שם וגרסת הפרוטוקול לקבלת הפניות. (בדרך-כלל 'HTTP/1.0' )

$REQUEST_METHOD

סוג השיטה שבעזרתה התבצעה פנייה לשרת. יכיל מחרוזת כגון: 'GET','HEAD', 'POST', 'PUT'.

$QUERY_STRING

מחרוזת הפנייה (query string) שדרכה התבצעה גישה לעמוד.

$DOCUMENT_ROOT

הספריה הראשית שתחתיה רץ הסקריפט הנוכחי לפי הגדרות השרת.

$HTTP_ACCEPT

תכולת כותר ה-Accept: בפנייה הנוכחית, אם קיים כותר כזה.

$HTTP_ACCEPT_CHARSET

תכולת כותר ה-Accept-Charset: בפנייה הנוכחית, אם קיים כותר כזה. לדוגמה: 'iso-8859-1,*,utf-8'.

$HTTP_ACCEPT_ENCODING

תכולת כותר ה-Accept-Encoding: בפנייה הנוכחית, אם קיים כותר כזה. לדוגמה: 'gzip'.

$HTTP_ACCEPT_LANGUAGE

תכולת כותר ה-Accept-Language: בפנייה הנוכחית, אם קיים כותר כזה. לדוגמה: 'en'.

$HTTP_CONNECTION

תכולת כותר ה-Connection: בפנייה הנוכחית, אם קיים כותר כזה. לדוגמה: 'Keep-Alive'.

$HTTP_HOST

תכולת כותר ה-Host: בפנייה הנוכחית, אם קיים כותר כזה.

$HTTP_REFERER

כתובתו של העמוד (אם קיים) שהפנה את הדפדפן לעמוד הנוכחי. משתנה זה נקבע על-ידי דפדפן המשתמש. לא כל הדפדפנים תומכים באפשרות זו.

$HTTP_USER_AGENT

תכולת כותר ה-User_Agent: בפנייה הנוכחית, אם קיים כותר כזה. מכיל מחרוזת המצהירה סוג הדפדפן המשמש לצפייה בעמוד הנוכחי. כגון:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). ניתן להשתמש בערך זה ובערך הפונקציה get_browser() כדי לאפשר בנייה של העמוד תוך התחשבות ביכולתו וסוגו של הדפדפן.

$REMOTE_ADDR

כתובת ה- IP שממנה המשתמש צופה בעמוד הנוכחי.

$REMOTE_PORT

ה-port שדרכו מתקשר מחשבו של המשתמש עם השרת.

$SCRIPT_FILENAME

שם הנתיב (pathname) האבסולוטי שבו מורץ הסקריפט הנוכחי.

$SERVER_ADMIN

הערך המועבר לאופציית ה-SERVER_ADMIN של שרת Apache בקובץ ההגדרות של השרת. אם הסקריפט רץ תחת host וירטואלי, משתנה זה יוגדר ל-host וירטואלי זה.

$SERVER_PORT

מספר ה-port המשמש לתקשורת של השרת. הרירת המחדל היא 80. כאשר משתמשים ב-SSL למשל, מספר זה ישתנה לפי ה-port שהוגדר כ-secure HTTP port .

$SERVER_SIGNATURE

מחרוזת המכילה את גרסת השרת ושם ה-host הוירטואלי. המחרוזת תצורף לדפים הנוצרים על-ידי השרת אם אופציה זו מאופשרת.

$PATH_TRANSLATED

נתיב מבוסס לפי מערכת הקבצים של הסקריפט הנוכחי (זה לא document root של הסקריפט) לאחר שבוצע מיפוי וירטואלי לריאלי.

$SCRIPT_NAME

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

$REQUEST_URI

כתובת ה-URI המשמשת לגישה לעמוד הנוכחי. לדוגמה: /index.html'.

משתני סביבה

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

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

משתני-PHP

משתנים אלו נוצרים על-ידי PHP. כל המשתנים בצורת $HTTP_*_VARS יהיו זמינים רק אם האופציה track_vars מאופשרת. כאשר אופציה זו מאופשרת, משתנים אלו תמידיוגדרו, אפילו אם יוגדרו כמערכים ריקים כדי למנוע ממשתמש בעל כוונת זדון לשנות את ערכם.

הערה: החל מגרסה 4.0.3 של PHP האופציה track_vars תמיד פעילה ללא התחשבות בהגדרתה בקובץ ההגדרות של PHP.

הערה: נוספו משתנים "סופר-גלובלים" חדשים מגרסה 4.1.0 . יש לעיין בהכרזה של PHP 4.1.0 למידע נוסף. המשתנים החדשים $_GET, $_POST, $_ENV, $_SERVER, $_COOKIE, $_REQUEST $_FILES, and $_SESSION הם מערכים שמוגדרים כ"סופר-גלובלים" מאחר שהם זמינים תמיד ללא תלות בטווח הגדרת הנתונים (scope). משתנים אלו מחליפים את מערכי ה-$HTTP_*_VARS שהיו בעבר בשימוש.

אם אופציית register_globals מאופשרת, יהיו משתנים אלו זמינים גם כן בטווח המשתנים הגלובלים בנפרד ממערכי ה-$HTTP_*_VARS הו-$_*. למידע נוסף, יש לעיין בפרק אבטחת המידע שכותרתו אופן השימוש ברישום גלובלים.

$argv

מערך המכיל את רשימת הארגומנטים המועברים לסקריפט. בעת הרצת סקריפט משורת הפקודה, מערך זה מאפשר גישה בסגנון שפת C לפרמטרים משורת הפקודה. כאשר עמוד מקבל פנייה בשיטת GET , משתנה זה יכיל את ה-query string.

$argc

מכיל את מספר הפרמטרים המועברים באמצעות שורת הפקודה לסקריפט (אם הסקריפט מורץ משורת הפקודה).

$PHP_SELF

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

$HTTP_COOKIE_VARS

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

$_COOKIE

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך עוגיות HTTP. משתנה זה מוגדר בכל טווח משתנים כלשהו. נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_GET_VARS

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

$_GET

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP GET. משתנה זה מוגדר בכל טווח משתנים כלשהו. נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_POST_VARS

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

$_POST

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP POST. משתנה זה מוגדר בכל טווח משתנים כלשהו. נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_POST_FILES

מערך אסוציאטיבי של משתנים המכילים מידע על קבצים שהועלו לשרת בשיטת HTTP POST. יש לעיין בהעלאת קבצים בשיטת POST למידע על תכולתו של $HTTP_POST_FILES. נוסף ל-PHP החל מגרסה 4.0.0.

$_FILES

מערך אסוציאטיבי של משתנים המכילים מידע על קבצים שהועלו לשרת בשיטת HTTP POST. יש לעיין בהעלאת קבצים בשיטת POST למידע על תכולתו של $_FILES. משתנה זה מוגדר בכל טווח משתנים כלשהו. נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_ENV_VARS

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

$_ENV

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

$HTTP_SERVER_VARS

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

$_SERVER

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי מהשרת. ערכים אלו מקבילים למשתני שרת Apache המתוארים למעלה. משתנה זה מוגדר בכל טווח משתנים כלשהו. נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_SESSION_VARS

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

$_SESSION

מערך אסוציאטיבי המכיל את משתני ה-session המועברים לסקריפט הנוכחי. משתנה זה מוגדר בכל טווח משתנים כלשהו. יצירת תאים חדשים במערך זה תגרום לרישום אוטומטי של נתונים אלו כמשתני session בדומה לפעולה המתבצעת בעת קריאה לפונקציה session_register(). נוסף ל-PHP החל מגרסה 4.1.0 .

$_REQUEST

מערך אסוציאטיבי הממזג את כל המידע ממשתני GET, POST ו-Cookie . במילים אחרות, הוא מכיל את כל המידע המגיע מהמשתמש ומבחינת אבטחת מידע אינו מומלץ לשימוש כי לא ניתן לבטוח במידע זה. נוסף ל-PHP החל מגרסה 4.1.0 .