PHP เบื้องต้น > การทำงานไฟล์ และไดเรคทอรี
ฟังก์ชันไฟล์อื่นที่มีประโยชน์
มีฟังก์ชันอื่นที่สามารถใช้ประโยชน์ได้
ตรวจสอบการมีอยู่ของไฟล์
ถ้าต้องการตรวจสอบว่าไฟล์มีอยู่โดยไม่มีการเปิด สามารถใช้ file_exist() ได้ดังนี้
if (file_exist("$DOCUMENT_ROOT/../../orders/orders.txt"))
echo "ไม่มีใบสั่งซื้อรอการประมวลผล";
else
echo "ไม่มีใบสั่งซื้อในปัจจุบัน";
ตรวจสอบขนาดไฟล์
การตรวจสอบขนาดไฟล์สามารถใช้ฟังก์ชัน filesize () ฟังก์ชันนี้ส่งออกขนาดไฟล์เป็นไบต์
echo filesize ("$DOCUMENT_ROOT/../../orders/orders.txt");
การสร้าง การลบ และการย้ายไฟล์
ฟังก์ชันระบบไฟล์สามารถใช้สร้าง ย้าย และลบไฟล์
การสร้างหรือเปลี่ยนเวลาการปรับปรุงล่าสุดใช้ฟังก์ชัน touch() และมีไวยากรณ์ดังนี้
int touch (string file. [int time])
ถ้าไฟล์มีอยู่ จะมีการเปลี่ยนเวลาปรับปรุงด้วยเวลาปัจจุบัน ถ้าไฟล์ไม่มีอยู่ไฟล์นี้จะได้รับการสร้างขึ้นมา
การลบไฟล์ใช้ฟังก์ชัน unlink()
unlink ("$DOCUMENT_ROOT/../../orders/orders.txt");
ฟังก์ชันนี้ไม่ทำงานกับ win32 แต่สามารถลบไฟล์ใน Windows ได้
system ("del filename.txt");
การคัดลอกและย้ายไฟล์สามารถใช้ฟังก์ชัน copy() และ rename()
copy($oldfile, $newfile);
ฟังก์ชัน rename() ทำงานเป็น 2 เท่าในฐานะฟังก์ชันย้ายไฟล์ เพราะ PHP ไม่มีฟังก์ชันการย้ายไฟล์ โดยไฟล์สามารถย้ายระบบหนึ่งไปอีกระบบและไฟล์ได้รับการเขียน
การค้นหาภายในไฟล์
การควบคุมและค้นหาตำแหน่งของพอยเตอร์ไฟล์ภายในไฟล์ใช้ rewind (), fseek () และ ftell ()
ฟังก์ชัน rewind () ตั้งค่าพอยเตอร์ใหม่ให้กลับไปที่จุดเริ่มต้น ฟังก์ชัน ftell () บอกระยะห่างเข้าไปในไฟล์ของพอยเตอร์เป็นไบต์ ตัวอย่างเช่น สามารถเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์ก่อนคำสั่ง fclose ()
echo "ตำแหน่งสุดท้ายของไฟล์พอยต์เตอร์ คือ ".(ftell($fp));
echo "<br/>";
rewind($fp);
echo "หลังจากย้อนกลับ ตำแหน่ง คือ ".(ftell($fp));
echo "<br/>";
ฟังก์ชัน fseek () สามารถใช้ตั้งค่าพอยเตอร์ไฟยังบางตำแหน่งภายในไฟล์ ไวยากรณ์คือ
int fseek (int fp, int offset);
ฟังก์ชัน fseek () ตั้งค่าพอยเตอร์ fp ไปยังจุดไบต์ที่ offset ภายในไฟล์ ฟังก์ชัน rewind () เทียบเท่ากับฟังก์ชัน fseek () ที่มีค่า offset เป็นศูนย์ ตัวอย่างเช่น fseek () สามารถใช้ค้นหาจุดกึ่งกลางของไฟล์หรือทำการค้นหาแบบไบนารี ตามปกติถ้าไฟล์ข้อมูลมีความซับซ้อนมาก ควรเปลี่ยนไปใช้ฐานข้อมูล
|