Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP Predefined Variables

บทนำ

PHP script ใดๆ เข้าถึง predefined variables ได้หลายตัว อย่างไรก็ตาม หลายตัวขึ้นอยู่กับ web server software, PHP version และปัจจัยอื่นๆ บางตัวไม่พร้อมใช้งานสำหรับ script ที่รันใน command line mode ตัวแปร $GLOBALS เก็บ references ของ predefined variables ทั้งหมดที่เป็น global ส่วนใหญ่แสดงโดย phpinfo.php ตัวแปรที่ใช้บ่อยอธิบายไว้ที่นี่

$_SERVER

เป็น array variable ที่มีข้อมูลเกี่ยวกับ HTTP headers, script และ environment สมาชิกที่สำคัญของ array นี้มีดังนี้

PHP_SELF - เก็บชื่อไฟล์ของ script ที่กำลัง execute อยู่ ตัวอย่าง script ใน test folder ของ document root ของ local server คืนค่าพาธดังนี้

ตัวอย่าง

<?php echo $_SERVER['PHP_SELF']; ?>

ผลลัพธ์

ผลลัพธ์ใน browser ด้วย URL https://localhost/test/testscript.php

/test/testscript.php

SERVER_ADDR - Property นี้คืนค่า IP address ของ server ที่ script ปัจจุบัน execute อยู่

SERVER_NAME - ชื่อ server host ที่ script ปัจจุบัน execute อยู่ ในกรณี server รัน local จะคืนค่า localhost

QUERY_STRING - Query string คือ string ของ key=value pairs คั่นด้วย & symbol และต่อท้าย URL หลัง ? symbol ตัวอย่าง https://localhost/testscript?name=xyz&age=20 URL คืนค่า trailing query string

REQUEST_METHOD - HTTP request method ที่ใช้เข้าถึง URL เช่น POST, GET, PUT หรือ DELETE ใน query string example ข้างต้น URL ที่ต่อ query string ด้วย ? symbol ร้องขอหน้าด้วย GET method

DOCUMENT_ROOT - คืนค่าชื่อ directory บน server ที่ตั้งค่าเป็น document root บน XAMPP apache server คืนค่า htdocs เป็นชื่อ document root

C:/xampp/htdocs

HTTP_USER_AGENT - String แทน user agent (browser) ที่เข้าถึงหน้านี้

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

REMOTE_ADDR - IP address ของเครื่องที่ user มองหน้าปัจจุบัน

SERVER_PORT - Port number ที่ web server รอ incoming request ค่าเริ่มต้น 80

$_GET

โดยค่าเริ่มต้น client browser ส่ง request ร้องขอ URL บน server ด้วย HTTP GET method Query string ที่ต่อท้าย URL อาจมี key=value pairs ต่อกันด้วย & symbol ตัวแปร $_GET associative array เก็บ key-value pairs เหล่านี้

สมมติว่า URL ใน browser คือ https://localhost/testscript?name=xyz&age=20

ตัวอย่าง

<?php echo "Name : " . $_GET["name"] . "<br>"; echo "Age : " . $_GET["age"]; ?>

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

Name : xyz Age : 20

$_POST

Associative array ของ key-value pairs ที่ส่งไปยัง URL ด้วย HTTP POST method ที่ใช้ URLEncoded หรือ multipart/form-data content-type ใน request

ข้อมูลส่งไปยัง PHP script ด้วย POST method โดยระบุ action=POST ใน HTML form test.html ดังนี้

<form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type="submit" value="submit"> </form>

PHP script มีดังนี้

ตัวอย่าง

<?php echo "Name : " . $_POST["name"] . "<br>"; echo "Age : " . $_POST["age"]; ?>

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

Name : xyz Age : 20

$_FILES

ตัวแปรนี้เป็น associative array ที่มีรายการไฟล์ที่อัปโหลดผ่าน HTTP POST method การอัปโหลดไฟล์ต้องการ HTTP POST method form ที่มี attribute enctype ตั้งเป็น multipart/form-data

<form action="testscript.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="submit"> </form>

ใน PHP script ตัวแปร _FILES เข้าถึงได้ดังนี้

ตัวอย่าง

<?php print_r($_FILES); ?>

ผลลัพธ์

Array ( [file] => Array ( [name] => hello.html [type] => text/html [tmp_name] => C:\xampp\tmp\php9647.tmp [error] => 0 [size] => 56 ) )

$_REQUEST

ตัวแปรนี้เป็น associative array ให้เนื้อหาของ $_GET, $_POST และ $_COOKIE predefined variables

$_SESSION

ตัวแปรนี้เป็น associative array ของตัวแปรที่แทน HTTP session

$_ENV

Array ของ environment variables สร้าง predefined variable นี้ ตัวแปรเหล่านี้ถูกนำเข้าเข้าสู่ global namespace ของ PHP

$_COOKIE

Server สามารถเก็บข้อมูลบางอย่างในคอมพิวเตอร์ของ client ในรูปของ cookies Cookies เหล่านี้ถูกส่งทุกครั้งที่มี request ตัวแปร _COOKIE เป็น associative array ของ cookie variables และค่าของพวกมัน