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

PHP file:// Wrapper

บทนำ

โปรโตคอลแบบ URL ต่างๆ สามารถใช้กับฟังก์ชันระบบไฟล์ได้ด้วยความช่วยเหลือของ built-in wrappers ที่มีใน PHP ฟังก์ชัน stream_wrapper_register() ก็ยังมีอยู่สำหรับกำหนด custom wrapper

Default wrapper ใน PHP คือ file:// และแทน local filesystem หากไม่มีโปรโตคอลอื่นระบุอย่างชัดเจน PHP parser จะถือว่าเป็น filesystem wrapper อาร์กิวเมนต์ชื่อไฟล์ที่ส่งให้ฟังก์ชันระบบไฟล์ fopen(), file_get_contents() เป็นต้น ใช้โปรโตคอล file:// โดยค่าเริ่มต้น

เมื่อชื่อไฟล์ไม่ขึ้นต้นด้วย forward slash, backward slash หรือ drive letter ใน Windows พาธจะถูกนับเป็น relative path เทียบกับ current directory อย่างไรก็ตาม ในฟังก์ชัน fopen() และ file_get_contents() ชื่อไฟล์อาจถูกค้นหาในพาธที่ระบุใน directive include_path

Wrapper file:// รองรับการดำเนินการอ่าน/เขียนพร้อมกัน, สร้างและลบไดเรกทอรี, และเปลี่ยนชื่อไฟล์ นอกจากนี้ การเข้าถึงไฟล์ไม่ถูกจำกัดโดย directive allow_url_fopen ในการตั้งค่า php.ini

ตัวอย่าง

การแสดงชื่อไฟล์ในรูปแบบต่างๆ ที่เป็นไปได้ มีดังนี้

// absolute path

$file = fopen("C:/xampp/php/test/test.txt", "w");

// relative path (สมมติ current working directory คือ c:\xampp\php, ไฟล์จะถูกเปิดใน tst subdirectory)

$file = fopen("test/test.txt", "w");

// current path ไฟล์จะถูกเปิดใน c:\xampp\php\test directory สมมติว่าเป็น current directory

$file = fopen("test.txt", "w");

// ใช้ file:// protocol สำหรับ absolute path

$file = fopen("file:///c:/xampp/php/test/test.txt", "w");

// ใช้ file:// protocol สำหรับไฟล์ใน document root

$file = fopen("file://localhost/test/test.txt", "w");