แนะนำตัว
glob:// stream wrapper มีอยู่ใน PHP ทุกรุ่นหลังจาก 5.3.0 ค้นหาชื่อพาธที่ตรงกับรูปแบบที่กำหนด วัตถุประสงค์ที่คล้ายกันนั้นสำเร็จโดยฟังก์ชันระบบไฟล์ของ PHP glob() ซึ่งเป็นไปตามกฎ libc glob()
พารามิเตอร์
อักขระพิเศษ
- * - จับคู่อักขระศูนย์หรือมากกว่า
- ? − จับคู่อักขระหนึ่งตัว (อักขระใดก็ได้) ให้ตรงกันทุกประการ
- [...] - จับคู่อักขระหนึ่งตัวจากกลุ่มอักขระ หากอักขระตัวแรกคือ ! ให้จับคู่อักขระที่ไม่อยู่ในกลุ่ม
- \ - ยกเว้นอักขระต่อไปนี้ ยกเว้นเมื่อใช้แฟล็ก GLOB_NOESCAPE
ค่าสถานะที่ถูกต้อง
- GLOB_MARK − เพิ่มเครื่องหมายทับ (แบ็กสแลชบน Windows) ให้กับแต่ละไดเร็กทอรีที่ส่งคืน
- GLOB_NOSORT − ส่งคืนไฟล์ตามที่ปรากฏในไดเร็กทอรี (ไม่มีการเรียงลำดับ) เมื่อไม่ใช้แฟล็กนี้ ชื่อพาธจะถูกจัดเรียงตามตัวอักษร
- GLOB_NOCHECK − ส่งคืนรูปแบบการค้นหาหากไม่พบไฟล์ที่ตรงกัน
- GLOB_NOESCAPE − แบ็กสแลชไม่อ้างอิงอักขระเมตา
- GLOB_BRACE − ขยาย {a,b,c} เพื่อให้ตรงกับ 'a', 'b' หรือ 'c'
- GLOB_ONLYDIR − ส่งกลับเฉพาะรายการไดเรกทอรีที่ตรงกับรูปแบบ
- GLOB_ERR − หยุดข้อผิดพลาดในการอ่าน (เช่น ไดเร็กทอรีที่อ่านไม่ได้) โดยค่าเริ่มต้น ข้อผิดพลาดจะถูกละเว้น
ตัวอย่าง
การใช้ฟังก์ชัน glob()
<?php foreach (glob("test/*.php") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?>
การใช้ glob:// stream wrapper
<?php $it = new DirectoryIterator("glob://test/*.php"); foreach($it as $f) { echo "File name: " . $f->getFilename() . " size: " . $f->getSize() . "\n";); } ?>
สคริปต์ทั้งสองแสดงชื่อและขนาดของไฟล์ที่มีนามสกุล .php ใน ทดสอบ ไดเรกทอรีย่อย