PHP 8.4.1 Released!

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

globBir kalıpla eşleşen dosya yollarını bulur

Açıklama

glob(string $kalıp, int $seçenekler = 0): array|false

glob() işlevi, dosya yollarını, kabuklarda kullanılana benzer şekilde, libc glob() işlevi tarafından kullanılan kurallara uygun olarak belli bir kalıp ile eşleştirmeye çalışır.

Bağımsız Değişkenler

kalıp

Dosya eşleştirme kalıbı. Yaklaşık (~) veya bağımsız değişken yorumlaması yapılmaz.

Özel karakterler:

  • * - Sıfır veya daha fazla karakterle eşleşir.
  • ? - Tek bir karakterle eşleşir (herhangi bir karakter).
  • [...] - Bir karakter grubundaki tek bir karakter ile eşleşir. İlk karakter ! ise eşleşme grupta olmayan bir karakterle gerçekleşir.
  • \ - GLOB_NOESCAPE seçeneği etkin değilse önündeki karakteri önceler.

seçenekler

Geçerli seçenekler:

GLOB_BRACE (int)
{a,b,c} kalıbını 'a', 'b', veya 'c' ile eşleşecek şekilde genişletir.

Bilginize: GLOB_BRACE Solaris, Alpine Linux gibi bazı GNU sistemlerinde kullanılamaz.

GLOB_ERR (int)
Okuma hatalarında işlemi durdurur (okunamayan dizinler gibi); öntanımlı olarak hatalar yoksayılır.
GLOB_ONLYDIR (int)
Sadece kalıpla eşleşen dizinleri döndürür.
GLOB_MARK (int)
Dönen her dizine bir bölü çizgisi ekler (Windows üzerinde ters bölü çizgisi ekler).
GLOB_NOSORT (int)
Dosyaları dizinde göründükleri sırayla döndürür (sıralamaz). Bu seçenek kullanılmadığında dosya yolları abecesel sıralanır.
GLOB_NOCHECK (int)
Hiçbir eşleşme bulunamazsa arama kalıbını döndürür.
GLOB_NOESCAPE (int)
Tersbölüler denetim karakterlerini öncelemez.
GLOB_AVAILABLE_FLAGS (int)
Tüm GLOB_* seçenekleri VEYAlanamaz. Bunlar 0'a eşdeğerdir: GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

Dönen Değerler

Eşleşen dosya ve dizinleri içeren bir dizi döndürür. Bir eşleşme bulunamazsa veya hata oluşursa false döndürür.

Bilginize:

Bazı sistemlerde boş eşleşme ile hata durumunu ayrımsamak mümkün değildir.

Örnekler

Örnek 1 glob() işlevini opendir() ve arkadaşları ile değiştirmenin uygun yolu

<?php
foreach (glob("*.txt") as $dosya) {
echo
"$dosya boyu " . filesize($dosya) . "\n";
}
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

funclist.txt boyu 44686
funcsummary.txt boyu 267625
quickref.txt boyu 137820

Notlar

Bilginize: Dosyaların sunucunun dosya sistemi üzerinden erişilebilir olması gerektiğinden bu işlev uzak dosyalar üzerinde çalışmayacaktır.

Bilginize: Bu işlevi bazı sistemlerde kullanamazsınız (örneğin, eski Sun OS'lar).

Ayrıca Bakınız

  • opendir() - Belirtilen dizin için bir tanıtıcı döndürür
  • readdir() - Dizinden bir girdinin ismini okur
  • closedir() - Dizin tanıtıcısını kapatır
  • fnmatch() - Dosya ismi belirtilen kalıpla eşleşiyor mu diye bakar

add a note

User Contributed Notes 1 note

up
4
Anonymous
3 years ago
Include dotfiles excluding . and .. special dirs with .[!.]*

<?php
$all_files
= array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
To Top