(PHP 4 >= 4.3.0, PHP 5)
fnmatch — Dosya ismi belirtilen kalıpla eşleşiyor mu diye bakar
fnmatch() işlevi, belirtilen dizge 'nin belirtilen dosya kalıbı ile eşleşip eşleşmediğine bakar.
Kabuk dosya ismi kalıbı.
Sınanacak dizge. İşlev özellikle dosya isimleri için yararlı olsa da sıradan dizgeler için de kullanılabilir.
Ortalama bir kullanıcı, kabuk dosya ismi kalıplarını veya bunların en basit biçimleri olan '?' ve '*' karakterlerini kullanabilir. Bu bakımdan, programcı olmayan kullanıcılar için preg_match() yerine fnmatch() kullanımı daha uygun olabilir.
Belirtilebilecek seçenekler:
Seçenek | Açıklama |
---|---|
FNM_FILE_NAME | / karakteri dosya isimlerinde özel olarak ele alınır. Bu seçenek etkinse, kalıp , dizge içindeki / karakteri ile eşleşemez. Eşleştirmenin tek yolu kalıp dizgesinin / karakterini içermesidir. |
FNM_PATHNAME | Bu POSIX.2 ile gelen bir FNM_FILE_NAME takma ismidir. |
FNM_PERIOD |
. karakteri dosya isimlerinin başında ise özel olarak ele alınır. Bu seçenek etkinse ve . karakteri dizge dizgesinin ilk karakteri ise kalıp ile eşleşemez. FNM_PERIOD ve FNM_FILE_NAME birlikte belirtilmişse, . karakterinin dizge dizgesinin başında olmasının yanında / karakterini izlediği durumda da eşleşme sağlanır. (Kabuk FNM_PERIOD ve FNM_FILE_NAME seçeneklerini dosya isimleriyle eşleşme ararken birlikte kullanır.) |
FNM_NOESCAPE | \ karakteri kalıplarda özel olarak ele alınmaz. Normalde, \ kendinden sonraki karakteri önceler; bu seçenek etkinse bu özellik kapatılır, böylece sadece kendisiyle eşleşebilir. Önceleme etkin olduğunda, \? kalıbı sadece ? karakteri ile eşleşir, çünkü kalıp içindeki soru işareti sıradan bir karakter gibi işlem görür. Eğer FNM_NOESCAPE seçeneği etkinse, \ sıradan bir karakterdir. |
FNM_LEADING_DIR |
dizge
içinde /
karakterini izleyen karakterler yoksayır; başka bir deyişle
kalıp
dizgesi dizge
dizisinin başındaki bir dizin ismi mi diye bakılır.
Bu seçenek etkinse, foo* ya da foobar
bir kalıp olarak foobar/frobozz dizgesi ile eşleşir.
|
FNM_CASEFOLD | dizge ile kalıp karşılaştırılırken harf büyüklüğüne bakılmaz. |
FNM_EXTMATCH |
Normal kalıplardan başka ksh'da bahsedilen ek kalıplar da tanınır. Aşağıdaki listedeki kalıp-listesi , | karakterinin ayraç olarak kullanıldığı bir kalıp listesidir.
|
Eşleşme sağlanmışsa TRUE aksi takdirde FALSE.
Sürüm: | Açıklama |
---|---|
5.3.0 | İşlev Windows platformlarında da kullanılabilir oldu. |
Örnek 1 - Bir renk isminin bir kabuk dosya kalıbıyla eşleştirilmesi
<?php
if (fnmatch("*gr[ae]y", $color)) {
echo "some form of gray ...";
}
?>
Bu işlev şimdilik POSIX uyumlu olmayan sistemlerde kullanılamamaktadır.