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

PHP glob://


แนะนำตัว

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 ใน ทดสอบ ไดเรกทอรีย่อย