Hàm glob() trong PHP.

24/11/2020 - lượt xem
Chia sẻ
 
Rate this post

Đị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.

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

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm