تم تمكين المتغيرات العامة الفائقة بعد PHP 4.1.0 وهي متغيرات تأتي مع نظام PHP وهي متاحة في النطاق الكامل للبرنامج النصي.
يتم تعريف العديد من الكائنات العملاقة مسبقًا في PHP، مما يعني أنها متوفرة في النطاق الكامل للبرنامج النصي. يمكنك استخدامه في الوظائف والفئات دون تعليمات خاصة.
قائمة المتغيرات العالمية الفائقة لـ PHP:
$العالميات
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
سنشرح في هذا الفصل العديد من المتغيرات العالمية الفائقة شائعة الاستخدام، وسنقدم المتغيرات المتبقية في الفصول القليلة القادمة.
$GLOBALS هي مجموعة متغيرات عالمية فائقة في PHP يمكن الوصول إليها في النطاق الكامل لبرنامج PHP النصي.
$GLOBALS عبارة عن مصفوفة مدمجة عامة تحتوي على كافة المتغيرات. اسم المتغير هو مفتاح المصفوفة.
يوضح المثال التالي كيفية استخدام المتغير الشامل الفائق $GLOBALS:
<?php $x = 75 ; $ y = 25 ; إضافة ( ) { $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] } إضافة ( ) ؛ صدى $ز ? >
في المثال أعلاه، z هو متغير عام فائق في مصفوفة $GLOBALS، والتي يمكن الوصول إليها أيضًا خارج الوظيفة.
$_SERVER عبارة عن مصفوفة تحتوي على معلومات مثل الرأس والمسار ومواقع البرنامج النصي. يتم إنشاء العناصر الموجودة في هذه المصفوفة بواسطة خادم الويب. ليس هناك ما يضمن أن كل خادم سيقدم جميع العناصر؛ وقد تتجاهل الخوادم بعضها، أو تقدم عناصر غير مدرجة هنا.
يوضح المثال التالي كيفية استخدام العناصر في $_SERVER:
<?php صدى $ _SERVER [ ' PHP_SELF ' ] ؛ " <br> " ; $ _SERVER [ ' SERVER_NAME ' ] ؛ " <br> " ; $ _SERVER [ ' HTTP_HOST ' ] ؛ " <br> " ; $ _SERVER [ ' HTTP_REFERER ' ] ؛ " <br> " ; $ _SERVER [ ' HTTP_USER_AGENT ' ] ؛ " <br> " ; $ _SERVER [ ' SCRIPT_NAME ' ] ;
يسرد الجدول التالي العناصر المهمة في جميع متغيرات $_SERVER:
العنصر/الرمز | يصف |
---|---|
$_SERVER['PHP_SELF'] | اسم ملف البرنامج النصي الذي يتم تنفيذه حاليًا والمتعلق بجذر المستند. على سبيل المثال، استخدام $_SERVER['PHP_SELF'] في البرنامج النصي الموجود على http://example.com/test.php/foo.bar سيؤدي إلى /test.php/foo.bar. يحتوي الثابت __FILE__ على المسار الكامل واسم الملف الحالي (أي الذي يحتوي على). بدءًا من PHP الإصدار 4.3.0، سيحتوي هذا المتغير على اسم البرنامج النصي إذا كان PHP يعمل في وضع سطر الأوامر. هذا المتغير غير متوفر في الإصدارات السابقة. |
$_SERVER['GATEWAY_INTERFACE'] | إصدار مواصفات CGI التي يستخدمها الخادم، على سبيل المثال، "CGI/1.1". |
$_SERVER['SERVER_ADDR'] | عنوان IP الخاص بالخادم الذي يعمل عليه البرنامج النصي حاليًا. |
$_SERVER['SERVER_NAME'] | اسم المضيف للخادم الذي يعمل عليه البرنامج النصي حاليًا. إذا كان البرنامج النصي يعمل على مضيف ظاهري، فسيتم تحديد الاسم حسب القيمة المعينة لذلك المضيف الظاهري. (على سبيل المثال: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | سلسلة تعريف الخادم، الواردة في معلومات الرأس عند الاستجابة للطلب. (على سبيل المثال: أباتشي/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'] | سلسلة الاستعلام (سلسلة الاستعلام)، إن وجدت، والتي يتم من خلالها الوصول إلى الصفحة. |
$_SERVER['HTTP_ACCEPT'] | محتوى العنصر قبول: الموجود في رأس الطلب الحالي، إذا كان موجودًا. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | محتوى العنصر Accept-Charset: الموجود في رأس الطلب الحالي، إذا كان موجودًا. على سبيل المثال: "iso-8859-1,*,utf-8". |
$_SERVER['HTTP_HOST'] | محتويات الحقل Host: في رأس الطلب الحالي، إن وجد. |
$_SERVER['HTTP_REFERER'] | يوجه وكيل المستخدم إلى عنوان الصفحة التي تسبق الصفحة الحالية، إن وجدت. يتم تحديده بواسطة إعدادات وكيل المستخدم. لن يقوم جميع وكلاء المستخدم بتعيين هذا العنصر، كما يوفر البعض الآخر وظيفة تعديل HTTP_REFERER. باختصار، القيمة ليست جديرة بالثقة. ) |
$_SERVER['HTTPS'] | اضبط على قيمة غير فارغة إذا تم الوصول إلى البرنامج النصي عبر بروتوكول HTTPS. |
$_SERVER['REMOTE_ADDR'] | عنوان IP الخاص بالمستخدم الذي يشاهد الصفحة الحالية. |
$_SERVER['REMOTE_HOST'] | اسم المضيف للمستخدم الذي يتصفح الصفحة الحالية. لا يعتمد الحل العكسي لـ DNS على 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.
يوضح المثال التالي نموذجًا يحتوي على حقول الإدخال وأزرار الإرسال. عندما يرسل المستخدم بيانات النموذج بالنقر فوق الزر "إرسال"، سيتم إرسال بيانات النموذج إلى ملف البرنامج النصي المحدد في سمة الإجراء للعلامة <form>. في هذا المثال، نحدد الملف للتعامل مع بيانات النموذج. إذا كنت تريد أن يتعامل ملف PHP آخر مع هذه البيانات، فيمكنك تعديل اسم ملف البرنامج النصي المحدد. بعد ذلك، يمكننا استخدام المتغير الشامل $_REQUEST لجمع بيانات حقل الإدخال في النموذج:
<html><body><formmethod="post" action="<?php echo $_SERVER['PHP_SELF'];?>">الاسم: <input type="text" name="fname"><نوع الإدخال ="submit"></form><?php $name = $_REQUEST['fname']; echo $name ?></body></html>
يتم استخدام PHP $_POST على نطاق واسع لجمع بيانات النموذج. حدد هذه السمة في علامة نموذج HTML: "method="post".
يوضح المثال التالي نموذجًا يحتوي على حقول الإدخال وأزرار الإرسال. عندما يرسل المستخدم بيانات النموذج بالنقر فوق الزر "إرسال"، سيتم إرسال بيانات النموذج إلى ملف البرنامج النصي المحدد في سمة الإجراء للعلامة <form>. في هذا المثال، نحدد الملف للتعامل مع بيانات النموذج. إذا كنت تريد أن يتعامل ملف PHP آخر مع هذه البيانات، فيمكنك تعديل اسم ملف البرنامج النصي المحدد. بعد ذلك، يمكننا استخدام المتغير الشامل $_POST لجمع بيانات حقل الإدخال في النموذج:
<html><body><formmethod="post" action="<?php echo $_SERVER['PHP_SELF'];?>">الاسم: <input type="text" name="fname"><نوع الإدخال ="submit"></form><?php $name = $_POST['fname']; echo $name ?></body></html>
يُستخدم PHP $_GET أيضًا على نطاق واسع لجمع بيانات النموذج. حدد هذه السمة في علامة نموذج HTML: "method="get".
يمكن لـ $_GET أيضًا جمع البيانات المرسلة في عنوان URL.
افترض أن لدينا صفحة HTML ذات ارتباط تشعبي تحتوي على معلمات:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">اختبار $GET</a></body></html>
عندما ينقر المستخدم على الرابط "اختبار $GET"، سيتم إرسال المعلمات "subject" و"web" إلى "test_get.php". ويمكنك استخدام المتغير $_GET في ملف "test_get.php" للحصول على هذا بيانات.
يوضح المثال التالي رمز الملف "test_get.php":
<html><body><?php echo "Study " . $_GET['subject'] " في " $_GET['web'];?></body></html>
نصيحة: إذا كنت تريد معرفة المزيد عن $_POST و$_GET، فتفضل بزيارة فصل نماذج PHP.