Dosya Sistemi İşlevleri
PHP Manual

fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatchDosya ismi belirtilen kalıpla eşleşiyor mu diye bakar

Açıklama

bool fnmatch ( string $kalıp , string $dizge [, int $seçenekler = 0 ] )

fnmatch() işlevi, belirtilen dizge 'nin belirtilen dosya kalıbı ile eşleşip eşleşmediğine bakar.

Değiştirgeler

kalıp

Kabuk dosya ismi kalıbı.

dizge

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.

seçenekler

Belirtilebilecek seçenekler:

fnmatch() işlevinin seçenekler değiştirgesinde 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.

?(kalıp-listesi )
kalıp-listesi ile belirtilen kalıplar girdi dizgesiyle hiç eşleşmeyebilir ya da bir kere eşleşebilir.
*(kalıp-listesi )
kalıp-listesi ile belirtilen kalıplar girdi dizgesiyle hiç eşleşmeyebilir ya da defalarca eşleşebilir.
+(kalıp-listesi )
kalıp-listesi ile belirtilen kalıplar girdi dizgesiyle ya en azından bir kere ya da defalarca eşleşebilir.
@(kalıp-listesi )
kalıp-listesi ile belirtilen kalıplar girdi dizgesiyle sadece bir kere eşleşebilir.
!(kalıp-listesi )
kalıp-listesi ile belirtilen kalıplar girdi dizgesiyle hiç eşleşmiyorsa eşleşme sağlanmış demektir.

Dönen Değerler

Eşleşme sağlanmışsa TRUE aksi takdirde FALSE.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.0 İşlev Windows platformlarında da kullanılabilir oldu.

Örnekler

Ö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 ...";
}
?>

Notlar

Uyarı

Bu işlev şimdilik POSIX uyumlu olmayan sistemlerde kullanılamamaktadır.

Ayrıca Bakınız


Dosya Sistemi İşlevleri
PHP Manual