fnmatch

funkcja

Sprawdza, czy nazwa pliku pasuje do wzorca powłoki (glob). Obsługuje * ? i klasy znaków []. Zwraca bool.

fnmatch(string $pattern, string $filename, int $flags = 0): bool

fnmatch dopasowuje ciąg znaków do wzorca glob — takiego samego, jakiego używa powłoka systemowa. Popularne symbole wieloznaczne:

| Symbol | Znaczenie | |--------|-----------| | * | dowolny ciąg znaków (w tym pusty) | | ? | dokładnie jeden dowolny znak | | [abc] | jeden znak z zestawu | | [!abc] | jeden znak spoza zestawu |

Funkcja porównuje wyłącznie ciągi znaków, nie skanuje systemu plików. Aby przefiltrować listę plików, połącz ją z scandir lub glob.

<?php
declare(strict_types=1);

$pliki = scandir(__DIR__ . '/raporty');

foreach ($pliki as $plik) {
    if (fnmatch('raport_*.csv', $plik)) {
        echo 'Pasuje: ' . $plik . PHP_EOL;
    }
}

// Proste testy:
var_dump(fnmatch('*.txt',  'raport.txt'));   // true
var_dump(fnmatch('dane_*', 'dane_2024.csv')); // true
var_dump(fnmatch('*.php',  'index.html'));   // false