Porównywanie z maskami wildcard
Założenie: Nauczymy się używać funkcji fnmatch()
w PHP do porównywania stringów z wzorcami typu wildcard (znaki wieloznaczne).
Krok po kroku:
- Sprawdzenie, czy plik ma rozszerzenie PHP:
- Sprawdzenie nazwy pliku graficznego:
- Dodatkowe opcje – flaga FNM_NOESCAPE:
$filename = "plik.php";
if (fnmatch("*.php", $filename)) {
echo "Plik ma rozszerzenie PHP";
} else {
echo "Plik nie ma rozszerzenia PHP";
}
Funkcja fnmatch("*.php", $filename)
sprawdza, czy $filename
pasuje do wzorca “*.php”. “*” oznacza dowolną liczbę dowolnych znaków.
$filename = "img-01.png";
if (fnmatch("img-??.png", $filename)) {
echo "Plik jest obrazem";
} else {
echo "Plik nie jest obrazem";
}
Funkcja fnmatch("img-??.png", $filename)
sprawdza, czy $filename
pasuje do wzorca “img-??.png”. “?? oznacza dwa dowolne znaki.
$filename = "plik.php";
if (fnmatch("*.php", $filename, FNM_NOESCAPE)) {
echo "Plik ma rozszerzenie PHP (bez interpretowania znaków specjalnych)";
}
Flaga FNM_NOESCAPE
zapobiega interpretowaniu znaków specjalnych jak np. ‘\’ jako znaków ucieczki.
Ten przykład pokazuje podstawowe zastosowanie funkcji fnmatch()
. Zachęcamy do dalszego zgłębiania dokumentacji PHP, aby poznać więcej możliwości tej funkcji i innych funkcji operujących na stringach.