ฟังก์ชัน glob
ฟังก์ชัน glob ค้นหาไฟล์และไดเรกทอรีที่ตรงกับรูปแบบการค้นหาที่กำหนด
พารามิเตอร์แรกส่งผ่านสตริงที่มีรูปแบบการค้นหา
พารามิเตอร์ที่สองซึ่งไม่บังคับ กำหนดแฟล็กเพื่อเปลี่ยนพฤติกรรมของฟังก์ชัน
ไวยากรณ์
glob(pattern, [flags]);
แฟล็ก
| แฟล็ก | คำอธิบาย |
|---|---|
GLOB_MARK |
เพิ่มสแลช / ให้กับไดเรกทอรีทุกตัวที่ส่งคืน |
GLOB_NOSORT |
ส่งคืนไฟล์ตามลำดับที่อยู่ในไดเรกทอรี (ไม่เรียงลำดับ) |
GLOB_NOCHECK |
ส่งคืนรูปแบบการค้นหา หากไม่พบการตรงกันแม้แต่หนึ่งรายการ |
GLOB_NOESCAPE |
แบ็กสแลชไม่ใช้สำหรับ escaping เมตาอักขระ |
GLOB_BRACE |
ขยาย {a,b,c} สำหรับการค้นหาตามหลายรูปแบบ |
GLOB_ONLYDIR |
ส่งคืนเฉพาะไดเรกทอรีที่ตรงกับรูปแบบ |
GLOB_ERR |
หยุดเมื่อเกิดข้อผิดพลาดในการอ่าน (เช่น ไม่มีสิทธิ์เข้าถึง) |
ตัวอย่าง
ค้นหาไฟล์ทั้งหมดที่มีนามสกุล .txt ในไดเรกทอรีปัจจุบัน:
<?php
$res = glob('*.txt');
print_r($res);
?>
ผลลัพธ์การทำงานของโค้ด:
['file1.txt', 'file2.txt', 'notes.txt']
ตัวอย่าง
ค้นหาไฟล์ทั้งหมดที่เริ่มต้นด้วย 'test' และนามสกุลใดๆ:
<?php
$res = glob('test*');
print_r($res);
?>
ผลลัพธ์การทำงานของโค้ด:
['test.php', 'test.txt', 'test_image.jpg']
ตัวอย่าง
การใช้แฟล็ก GLOB_BRACE เพื่อค้นหาตามหลายรูปแบบ:
<?php
$res = glob('*.{php,txt}', GLOB_BRACE);
print_r($res);
?>
ผลลัพธ์การทำงานของโค้ด:
['index.php', 'config.php', 'readme.txt']
ตัวอย่าง
ค้นหาไฟล์ในไดเรกทอรีย่อยโดยใช้แฟล็ก GLOB_RECURSE:
<?php
$res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
print_r($res);
?>
ผลลัพธ์การทำงานของโค้ด:
['index.php', 'lib/utils.php', 'admin/index.php']
ดูเพิ่มเติม
-
ฟังก์ชัน
scandir,
ซึ่งอ่านเนื้อหาภายในไดเรกทอรี -
ฟังก์ชัน
file_exists,
ซึ่งตรวจสอบการมีอยู่ของไฟล์ -
ฟังก์ชัน
is_file,
ซึ่งตรวจสอบไฟล์