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

PHP glob:// Wrapper

บทนำ

Stream wrapper glob:// พร้อมใช้งานใน PHP ทุกเวอร์ชันหลัง 5.3.0 ใช้ค้นหา pathnames ที่ตรงกับ pattern ที่กำหนด วัตถุประสงค์เดียวกันนี้ ทำได้โดยฟังก์ชันระบบไฟล์ของ PHP glob() ซึ่งปฏิบัติตามกฎของ libc glob()

พารามิเตอร์

อักขระพิเศษ

  • * - จับคู่ศูนย์หรือหลายอักขระ
  • ? - จับคู่อักขระเดียวเท่านั้น (อักขระใดก็ได้)
  • [...] - จับคู่อักขระหนึ่งจากกลุ่มอักขระ หากอักขระแรกคือ ! จะจับคู่อักขระที่ไม่อยู่ในกลุ่ม
  • \ - Escape อักขระถัดไป ยกเว้นเมื่อใช้ flag GLOB_NOESCAPE

Flag ที่ถูกต้อง

  • GLOB_MARK - เพิ่มสแลช (หรือแบ็กสแลชใน Windows) ให้กับแต่ละไดเรกทอรีที่คืนค่า
  • GLOB_NOSORT - คืนค่าไฟล์ตามลำดับในไดเรกทอรี (ไม่จัดเรียง) เมื่อไม่ใช้ flag นี้ pathnames จะถูกจัดเรียงตามตัวอักษร
  • GLOB_NOCHECK - คืนค่า search pattern หากไม่พบไฟล์ที่ตรงกัน
  • GLOB_NOESCAPE - Backslashes ไม่ quote metacharacters
  • GLOB_BRACE - ขยาย {a,b,c} ให้จับคู่ 'a', 'b', หรือ 'c'
  • GLOB_ONLYDIR - คืนค่าเฉพาะ directory entries ที่ตรงกับ pattern
  • 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 ในไดเรกทอรีย่อย test