English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تم تمكين المتغيرات العالمية في PHP 4.1.0، وهي متغيرات مدمجة في نظام PHP، متاحة في جميع نطاقات السكربت.
تم تعريف بعض المتغيرات العالمية المسبقة (superglobals) في PHP، مما يعني أنها متاحة في جميع نطاقات السكربت. لا تحتاج إلى تحديدها بشكل خاص للاستخدام في الدوال والفئات.
قائمة المتغيرات العالمية في PHP:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
في هذا الفصل سنناقش بعض المتغيرات العالمية الشائعة، وسنقوم بشرح الباقي في الفصول القادمة.
$GLOBALS هي مجموعة متغيرات عالمية متميزة في PHP، يمكن الوصول إليها في جميع نطاقات الدوال في سكربت PHP.
$GLOBALS هي مصفوفة تحتوي على مجموعة كاملة من المتغيرات العالمية. واسم المتغير هو مفتاح المصفوفة.
في المثال التالي يُظهر كيفية استخدام المتغيرات العالمية الممتازة $GLOBALS:
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>اختبار لرؤية ‹/›
في المثال السابق، z هي متغير عالمي (super global) في مصفوفة $GLOBALS، يمكن الوصول إليها خارج الدوال أيضًا.
$_SERVER هو مصفوفة تحتوي على معلومات مثل معلومات الرأس (header)، المسار (path)، ومواقع السكربت (script locations) وما إلى ذلك. يتم إنشاء مشاريع هذه المصفوفة من قبل خادم الويب. لا يمكن التأكد من أن كل خادم يقدم جميع المشاريع؛ قد يغيب بعضها أو يقدم بعضها لم يتم ذكرها هنا.
في المثال التالي يُظهر كيفية استخدام العناصر في $_SERVER:
<?php echo $_SERVER['PHP_SELF']; echo '<br>'; echo $_SERVER['SERVER_NAME']; echo '<br>'; echo $_SERVER['HTTP_HOST']; echo '<br>'; echo $_SERVER['HTTP_REFERER']; echo '<br>'; echo $_SERVER['HTTP_USER_AGENT']; echo '<br>'; echo $_SERVER['SCRIPT_NAME']; ?>اختبار لرؤية ‹/›
الجدول التالي يظهر العناصر المهمة لـ $_SERVER متغيرات:
العنصر/الكود | وصف |
---|---|
$_SERVER['PHP_SELF'] | اسم ملف السكربت الحالي، يتعلق بالجذر الدокументي. مثلًا، في السكربت الموجود في عنوان http://example.com/test.php/foo.bar باستخدام $_SERVER['PHP_SELF']، سيتم الحصول على /test.php/foo.bar. المفترق __FILE__ يحتوي على مسار واسم الملف الحالي (مثلًا، الملف الذي يحتوي عليه). بدءًا من إصدار PHP 4.3.0، إذا كان PHP يعمل في نمط السطر الأوامر، سيحتوي هذا المتغير على اسم السكربت. في الإصدارات الأقدم، لا يكون المتغير متاحًا. |
$_SERVER['GATEWAY_INTERFACE'] | إصدار معيار CGI الذي يستخدمه الخادم؛ مثلًا، "CGI/1.1". |
$_SERVER['SERVER_ADDR'] | عنوان IP للخادم الذي يعمل فيه السكربت الحالي. |
$_SERVER['SERVER_NAME'] | اسم الخادم الذي يعمل فيه السكربت الحالي. إذا كان السكربت يعمل في مضيف افتراضي، فإن هذا الاسم يتم تحديده من قيمة مضيف افتراضي ذلك. مثلًا: ar.oldtoolbag.com |
$_SERVER['SERVER_SOFTWARE'] | سلسلة هوية الخادم، تقدم في معلومات الرأس عند الرد على الطلب. مثلًا: Apache/2.2.24 |
$_SERVER['SERVER_PROTOCOL'] | اسم وتعريف إتفاقية التواصل المستخدمة عند طلب الصفحة. مثلًا، "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | طريقة الطلب المستخدمة لتحديد الصفحة. مثلًا، "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | بصمة الوقت عند بدء الطلب. متاح منذ PHP 5.1.0. مثلًا: 1377687496 |
$_SERVER['QUERY_STRING'] | السلسلة المطلوبة (query string)، إذا كانت موجودة، يتم الوصول إلى الصفحة من خلالها. |
$_SERVER['HTTP_ACCEPT'] | المحتوى لـ Accept: في عنوان الطلب الحالي، إذا كان موجودًا. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | المحتوى لـ Accept-Charset: في عنوان الطلب الحالي، إذا كان موجودًا. مثلًا: "iso-8859-1,*,utf-8". |
$_SERVER['HTTP_HOST'] | المحتوى لـ Host: في عنوان الطلب الحالي، إذا كان موجودًا. |
$_SERVER['HTTP_REFERER'] | يوجه المستخدم إلى الصفحة السابقة التي يقوم بها المستخدم الحالي (إذا كانت موجودة). يتم تحديد هذا من قبل user agent. ليس جميع المستخدمين يضيفون هذا العنصر، والبعض يقدم أيضًا ميزة تعديل HTTP_REFERER. على الأقل، لا يمكن اعتماد هذه القيمة. |
$_SERVER['HTTPS'] | إذا تم الوصول إلى السكربت عبر بروتوكول HTTPS، يتم تعيينه إلى قيمة غير فارغة. |
$_SERVER['REMOTE_ADDR'] | عنوان IP للمستخدم الذي يستعرض الصفحة الحالية. |
$_SERVER['REMOTE_HOST'] | اسم الخادم الذي يستعرض الصفحة الحالية. لا تعتمد معالجة DNS العكسي على $_SERVER['REMOTE_ADDR']. |
$_SERVER['REMOTE_PORT'] | البوابة التي يستخدمها جهاز المستخدم للاتصال بخادم الويب. |
$_SERVER['SCRIPT_FILENAME'] | المسار المطلق للسكربت الذي يتم تنفيذه حاليًا. |
$_SERVER['SERVER_ADMIN'] | يحدد هذا القيمة هو معلمة SERVER_ADMIN في ملف تكوين Apache. إذا تم تشغيل السكربت على خادم افتراضي، فإن القيمة هي قيمة الخادم الافتراضي. (مثل: [email protected]) |
$_SERVER['SERVER_PORT'] | يستخدم بوابة الخادم. القيمة الافتراضية هي "80". إذا تم استخدام اتصال آمن SSL، فإن القيمة هي بوابة HTTP التي تم تعيينها من قبل المستخدم. |
$_SERVER['SERVER_SIGNATURE'] | يحتوي على سلسلة تحتوي على إصدار الخادم واسم الخادم الافتراضي. |
$_SERVER['PATH_TRANSLATED'] | المسار الأساسي للملف النظام الموجود في ملف السكربت الحالي (ليس مجلد الجذر للوثائق). هذا هو النتيجة بعد إعادة映ع من مجال إلى مسار حقيقي في الخادم. |
$_SERVER['SCRIPT_NAME'] | يحتوي على مسار 当前 السكربت. هذا مفيد جدًا عندما تحتاج الصفحة إلى الإشارة إلى نفسها. يحتوي المقياس __FILE__ على مسار واسم ملف السكربت الحالي (مثل الملفات المضمرة) الكامل. |
$_SERVER['SCRIPT_URI'] | يستخدم URI لتعيين الصفحة التي سيتم زيارتها. على سبيل المثال "/index.html". |
يستخدم PHP $_REQUEST لجمع بيانات نموذج HTML المقدم.
في المثال التالي، يظهر نموذج يحتوي على حقل إدخال (input) وزر إرسال (submit). عند الضغط على زر "Submit" لرفع بيانات النموذج، سيتم إرسال بيانات النموذج إلى ملف السكربت المحدد في سمة action علامة <form>. في هذا المثال، نحدد ملفًا لمعالجة بيانات النموذج. إذا كنت ترغب في معالجة بيانات النموذج بواسطة ملف PHP آخر، يمكنك تعديل اسم الملف المحدد. ثم، يمكننا استخدام المتغيرات العالمية الكبرى $_REQUEST لجمع بيانات حقل النموذج المقدم:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> الاسم: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>اختبار لرؤية ‹/›
PHP $_POST يستخدم على نطاق واسع لجمع بيانات النموذج، في علامة التبويب HTML form، يتم تحديد هذا السمة: "method="post".
في المثال التالي، يظهر نموذج يحتوي على حقل إدخال (input) وزر إرسال (submit). عند الضغط على زر "Submit" لرفع بيانات النموذج، سيتم إرسال بيانات النموذج إلى ملف السكربت المحدد في سمة action علامة <form>. في هذا المثال، نحدد ملفًا لمعالجة بيانات النموذج. إذا كنت ترغب في معالجة بيانات النموذج بواسطة ملف PHP آخر، يمكنك تعديل اسم الملف المحدد. ثم، يمكننا استخدام المتغيرات العالمية العليا $_POST لجمع بيانات حقل النموذج input:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> الاسم: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>اختبار لرؤية ‹/›
PHP $_GET يستخدم على نطاق واسع لجمع بيانات النموذج، في علامة التبويب HTML form، يتم تحديد هذا السمة: "method="get".
يمكن لـ $_GET أيضًا جمع البيانات المرسلة عبر URL.
افترض أن لدينا صفحة HTML تحتوي على رابط يحتوي على معاملات:
<html> <body> <a href="test_get.php?subject=PHP&web=oldtoolbag.com">Test $GET</a> </body> </html>
عند الضغط على رابط "Test $GET"، سيتم إرسال المعامل "subject" و "web" سيتم إرساله إلى "test_get.php"، يمكنك استخدام متغير $_GET في ملف "test_get.php" لاستقبال هذه البيانات.
في المثال التالي، يظهر رمز ملف "test_get.php":
<html> <body> <?php echo "دراسة" . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>اختبار لرؤية ‹/›
نصيحة: إذا كنت ترغب في تعلم المزيد عن $_POST و $_GET، يرجى زيارة نموذج PHP الفصول.