Định nghĩa.
Hàm glob()
sẽ tìm kiếm tất cả các đường dẫn phù hợp với partern truyền vào. Việc tìm kiếm sẽ dựa theo quy tắc sử dụng bởi thư viện glob()
.
Cú pháp.
Cú pháp:
glob ( string$pattern
[, int$flags
= 0 ] ) : array
Trong đó.
$partern
là chuỗi đại diện, hàm sẽ dựa vào$partern
để tìm kiếm.$flag
là tham số, gồm các giá trị sau:- GLOB_MARK: thêm dấu slash( \) vào sau các thư mục được tìm thấy.
- GLOB_NOSORT: Khi nhiều files được tìm thấy, chúng sẽ được sắp xếp theo thứ tự trong thư mục, nếu GLOB_NOSORT không được truyền vào, chúng sẽ được sắp xếp theo bảng chữ cái.
- GLOB_NOCHECK: Nếu không tìm thấy file hoặc thư mục, partern sẽ được trả về.
- GLOB_NOESCAPE: các dấu Backslashes( /) sẽ không ngăn cách các ký tự.
- GLOB_BRACE: mở rộng {a, b, c} để phù hợp với ‘a’, ‘b’, ‘c’.
- GLOB_ONLYDIR : chỉ trả về các thư mục được tìm thấy.
- GLOB_ERR: ngừng tìm kiếm khi gặp lỗi.
Giá trị trả về.
- Hàm sẽ trả về một mảng bao gồm các files và thư mục được tìm thấy, nếu không tìm thấy kết quả hàm sẽ trả về mảng rỗng. Nếu có lỗi, hàm sẽ trả về False. – Lưu ý trên một số hệ thống, không thể phân biệt giữa kết quả khớp trống và lỗi.
Sự thay đổi.
- 5.1.0 GLOB_ERR đã được thêm vào
Ví dụ.
Ví dụ 1.
code.
<?php foreach (glob("*.txt") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?>
Kết quả.
funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820
Ghi chú.
- Chức năng này sẽ không hoạt động trên các tệp từ xa vì tệp cần kiểm tra phải có thể truy cập được thông qua hệ thống tệp của máy chủ.
- Chức năng này không khả dụng trên một số hệ thống (ví dụ: hệ điều hành Sun cũ).
- Cờ GLOB_BRACE không khả dụng trên một số hệ thống không phải GNU, như Solaris.
Hàm liên quan.
- opendir() – Mở thư mục xử lý
- readdir() – Đọc mục từ thư mục xử lý
- closedir() – Đóng thư mục xử lý
- fnmatch () – Ghép tên tệp với mẫu
Thông tin thêm.
- Xin lưu ý rằng glob(‘*’) bỏ qua tất cả các tệp ‘ẩn’ theo mặc định. Điều này có nghĩa là nó không trả về các tệp bắt đầu bằng dấu chấm (ví dụ: “.file”). Nếu bạn cũng muốn khớp các tệp đó, bạn có thể sử dụng “{,.} *” Làm mẫu với cờ GLOB_BRACE.
<?php // Search for all files that match .* or * $files = glob('{,.}*', GLOB_BRACE); ?> // Lưu ý: Điều này cũng trả về các mục đặc biệt của thư mục
- glob là trường hợp nhạy cảm, ngay cả trên các hệ thống Windows. Nó không hỗ trợ các lớp nhân vật, vì vậy một phiên bản không nhạy cảm của trường hợp
//Nó không hỗ trợ các lớp character , vì vậy một phiên bản không nhạy cảm của trường hợp <?php glob('my/dir/*.csv') ?> //có thể được viết là <?php glob('my/dir/*.[cC][sS][vV]') ?>
- Lưu ý rằng trong trường hợp bạn đang sử dụng dấu ngoặc nhọn với global, bạn có thể truy xuất các mục trùng lặp cho các tệp khớp với nhiều mục:
<?php $a = glob('/path/*{foo,bar}.dat',GLOB_BRACE); print_r($a); ?> Kết quả Array ( [0] => /path/file_foo.dat [1] => /path/file_foobar.dat [2] => /path/file_foobar.dat )
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm glob() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com