PHP glob işlevi alamadım

3 Cevap php

http://php.net/glob

Glob üzerinde dokümantasyon sayfasında () Bu örnek vardır:

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

Ama dürüst olmak gerekirse, ben bu işe nasıl anlamıyorum.

Glob ("*. Txt") tarafından üretilen dizi geçilen olacak, ancak bu dizi nereden geliyor? Glob mı (), bir dizin okuma? Ben kodu her yerde görmüyorum. Glob () tüm maçlar için arar *. Txt için

Ancak glob () işlevi, bu dizeleri için bakmak gerekir nerede nerede ayarlarım?

3 Cevap

Herhangi bir dizin belirtilen glob () olmadan mevcut çalışma dizini hareket (komut olarak sık sık aynı dizin, ama her zaman değil) olacaktır.

, Daha kullanışlı hale getirmek gibi glob ("/ var / log / *. Log") olarak tam yolunu kullanın. Kuşkusuz kaynaklanan nerede, hangi PHP belgelerine davranış açık yapmaz, ama glob () bir C library function olduğunu.

Görüntüler için, örneğin, bir dizin hareket, ama birden fazla dosya uzantısı eşleştirmek istiyorum istiyorsanız glob() ile tespit ettik kullanışlı bir şey, bu kodu inceleyebilirsiniz.

 $images = glob($imagesDir . '*' . '.{jpg,jpeg,png,gif}', GLOB_BRACE);

GLOB_BRACE bayrak parantez tür (a|b) regex gibi iş yapar.

Bir küçük ihtar onları liste gerektiğini, bu nedenle bu tür jpe?g jpg veya jpeg maç olarak regex sözdizimi kullanamazsınız.

Evet, glob dizinini okur. Eğer belirli bir dizindeki dosyaları maç arıyorsanız nedenle, o argüman () dizin (yani "/ benim / dir / *. Png") işaret etmek yeterli özgü olmalıdır glob kaynağı. Aksi takdirde, ben 'geçerli' dizindeki dosyaları aramak inanıyoruz.

Bazı sistemler dosya üzerinde unutmayın harfe duyarlı olabilir bu yüzden "*. Png" ile biten dosyaları bulmak olmayabilir ". PNG".

A general overview of its purpose can be found here. PHP işlevselliği libc glob function kimin gerekçe http://web.archive.org/web/20071219090708/http://www.isc.org/sources/devel/func/glob.txt okunabilir bu dayanmaktadır.