PHP เบื้องต้น > การทำงานไฟล์ และไดเรคทอรี
การทำงานกับแม่ข่าย
โปรแกรมประยุกต์เว็บต้องทำงานกับแม่ข่าย จึงการทำงานความเข้าใจการทำงานของแม่ข่าย รวมถึงสิ่งที่ผู้ใช้ส่งมาให้
ตัวแปรแม่ข่าย
กลไกหลักที่ใช้ในการศึกษาคือ $_SERVER superglobal array และตรงกับ $HTTP_SERVER_VARS array ที่ต้องตั้งค่า register_long_arrays เป็น on ใน php.ini เพื่อทำให้เนื้อหาที่มีได้รับการตั้งค่าเป็นตัวแปร global ที่มีพื้นฐานจาก register_globals
ใน array นี้มีหลายตัวแปรที่น่าสนใจและใช้งานบ่อย
PHP_SELF
คีย์นี้อยู่ใน $_SERVER array บอกถึง URI ของสคริปต์ปัจจุบันสัมพัทธ์กับรากของเว็บไซต์ที่กำลังเข้าถึง ตัวอย่าง
http://www.widebase.net/member/login.php
$_SERVER[PHP_SELF] ส่งออก /member/login.php แต่สคริปต์ที่ถามถึงต้องรวมอยู่ในสคริปต์อื่น จึงส่งออกค่าเมื่อมีการถามได้
SERVER_NAME
ค่านี้เป็นชื่อของแม่ข่ายที่ไม่คำนำหน้าด้วย http:// เช่น www.widebase.net
SERVER_SOFTWARE
ค่านี้บอกซอฟต์แวร์ที่แม่ข่ายกำลังเรียกใช้ เช่น Microsoft-IIS/5.1, Apache/2.2.2 (Win32) PHP/5.1.4 หรือ Apache/ 1.3.33 (Unix) PHP/5.0.4 mod_ssl/2.8.1 OpenSSL/0.9.7f
SERVER_PROTOCOL
ค่านี้บอกถึงโปรโตคอลที่ลูกข่ายใช้ทำคำขอเพจนี้ ตามปกติเป็น HTTP/1.1
REQUEST_METHOD
ค่านี้บอกวิธีการส่งข้อมูลจากคำขอ HTTP นอกจาก GET และ POST แล้ว อาจจะพบ PUT และ HEAD
REQUEST_TIME
ตัวแปรนี้ไม่ได้มีในทุกแม่ข่าย แต่ส่วนที่สนับสนุนจะใช้อ่านค่าเวลาที่แม่ข่ายรับคำขอ
DOCUMENT_ROOT
การค้นหาว่าไดเรคทอรีที่กำลังประมวลผลคำสั่ง สามารถค้นจากฟิลด์ DOCUMENT_ROOT
REMOTE_ADDR
ถ้าต้องการทราบ IP address ของลูกข่ายที่กำลังเชื่อมต่อสามารถดูได้จากฟิลด์นี้ ถึงแม้ว่าค่าของฟิลด์สามารถแก้ไขได้โดยผู้ใช้ระดับสูง แต่ยังคงสามารถใช้เป็นเครื่องมือระบุผู้ใช้โปรแกรมประยุกต์ เช่น ฟอรัม
สิ่งที่ควรทราบคือ ผู้ใช้เดียวกันใน session' เดียวกันสามารถมาจากต่าง IP address ทั้งนี้ขึ้นกับผู้ให้บริการอินเตอร์เน็ตที่ผู้ใช้เชื่อมต่อและเส้นทางการเดินของข้อมูล
HTTP_USER_AGENT
ฟิลด์นี้บอกตัวแทน (agent) ที่เป็น browser, โปรแกรม และอื่นๆ ของลูกข่ายที่ทำคำขอเพจ
อื่นๆ
สามารถดูฟิลด์อื่นของ $_SERVER array ได้ด้วยการเรียกฟังก์ชัน phpinfo() หรือเขียนคำสั่งแสดงฟิลด์ของ $_SERVER ตามรายการคำสั่ง 1.3.2 แสดงผลตามภาพ 1.3.1
ภาพ 1.3.1
รายการคำสั่ง 1.3.2 สคริปต์ serverinfo.php แสดงสารสนเทศของ $_SERVER
<html>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620" />
<head><title>Server Information</title></head>
<body>
<table width='100%' border='1'>
<?php
foreach ($_SERVER as $key => $value)
{
echo <<<SHOWVAR
<tr>
<td width='25%'><b>$key</b></td>
<td> $value</td>
</tr>
SHOWVAR;
}
?>
</table>
</body>
</html>
|
ตัวแปร Environment
$_ENV array บอกให้ทราบถึงสภาพแวดล้อมของระบบปฏิบัติการสำหรับแม่ข่ายปัจจุบัน รายละเอียดมีของระบบปฏิบัติการที่กำลังเรียกใช้มีความเจาะจงมาก บอกถึง PATH (ชุดของไดเรคทอรีเพื่อค้นหาไฟล์ exe) ชื่อโฮสต์ ระบบปฏิบัติการ หรือ command shell
การดูรายละเอียดสามารถแก้ไขรายการคำสั่ง 1.3.2 จาก $_SERVER เป็น $_ENV
|