Nasıl PHP kullanarak bir dizin içindeki dosya adlarını almak için?
Ben Google'ı kullanarak ilgili komutu bulamadı, bu yüzden bu soru benzer çizgide soran ire edenlere yardımcı olacağını umuyoruz.
Yolları bir sürü var. Eski yol scandir
but DirectoryIterator
a>, muhtemelen en iyi yoldur.
readdir
(to be used with opendir
) and glob
a> da bulunuyor.
Burada geçerli dizindeki tüm dosyaları yazdırmak için her birini nasıl kullanılacağı hakkında bazı örnekler şunlardır:
DirectoryIterator
usage: (recommended)foreach (new DirectoryIterator('.') as $file) {
if($file->isDot()) continue;
print $file->getFilename() . '<br>';
}
scandir
usage:$files = scandir('.');
foreach($files as $file) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
opendir
and readdir
usage:if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
closedir($handle);
}
glob
usage:foreach (glob("*") as $file) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
Açıklamalarda belirtildiği gibi orada kullanılan yıldız aslında çok glob('*.txt')
size klasördeki tüm metin dosyaları alacağı, dosyaları maçları yapmak için kullanılabilir, çünkü, glob
güzel ve glob('image_*')
Sana image_ ile başlayan tüm dosyaları almak istiyorum
Eski yolu olacaktır:
<?php
$path = realpath('.'); // put in your path here
$dir_handle = @opendir($path) or die("Unable to open $path");
$directories = array();
while ($file = readdir($dir_handle))
$directories[] = $file;
closedir($dir_handle);
?>
Bahsedildiği gibi dizin yineleyici PHP 5 için iyi bir yol olabilir.