PHP fnmatch()

Hàm `fnmatch()` trong PHP

Hàm `fnmatch()` trong PHP được sử dụng để so sánh một chuỗi với một mẫu (pattern) sử dụng ký tự đại diện. Đây là cách hữu ích để kiểm tra xem một mẫu có khớp với một chuỗi cụ thể hay không, tương tự như việc sử dụng các ký tự đại diện trong các lệnh tìm kiếm file trên hệ điều hành.

Cú pháp

bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

Tham số

  • $pattern: Mẫu (pattern) để so sánh. Mẫu có thể sử dụng các ký tự đại diện như:
    • *: đại diện cho bất kỳ chuỗi nào (bao gồm cả chuỗi rỗng).
    • ?: đại diện cho một ký tự đơn.
    • [...] và [!...]: đại diện cho một tập hợp các ký tự.
  • $string: Chuỗi cần kiểm tra.
  • $flags: (tùy chọn) Các cờ (flags) bổ sung để tùy chỉnh hành vi của hàm.

Giá trị trả về

Hàm `fnmatch()` sẽ trả về true nếu chuỗi khớp với mẫu, ngược lại sẽ trả về false.

Ví dụ

$pattern = "*.php";
$string1 = "index.php";
$string2 = "style.css";

if (fnmatch($pattern, $string1)) {
    echo "$string1 khớp với mẫu '$pattern'.\n"; // Kết quả: index.php khớp với mẫu '*.php'.
}

if (!fnmatch($pattern, $string2)) {
    echo "$string2 không khớp với mẫu '$pattern'.\n"; // Kết quả: style.css không khớp với mẫu '*.php'.
}

Các cờ (flags) có sẵn

Các cờ có thể được sử dụng với `fnmatch()` để thay đổi hành vi của nó, chẳng hạn như:

  • FNMATCH_NOCASE: So sánh không phân biệt chữ hoa chữ thường.

Ví dụ sử dụng cờ

$pattern = "*.PHP";
$string = "index.php";

if (fnmatch($pattern, $string, FNMATCH_NOCASE)) {
    echo "$string khớp với mẫu '$pattern' (có phân biệt chữ hoa chữ thường).\n"; // Kết quả: index.php khớp với mẫu '*.PHP'.
}

Kết luận

Hàm `fnmatch()` là một công cụ mạnh mẽ để thực hiện việc so sánh chuỗi với các mẫu sử dụng ký tự đại diện. Nó rất hữu ích trong các tình huống như tìm kiếm file hoặc kiểm tra định dạng tên file.