Ответ 1
Там много способов. Более старый способ scandir
, но DirectoryIterator
вероятно, лучший способ.
Там также readdir
(для использования с opendir
) и glob
.
Вот несколько примеров использования каждого из них для печати всех файлов в текущем каталоге:
DirectoryIterator
использование: (рекомендуется)
foreach (new DirectoryIterator('.') as $file) {
if($file->isDot()) continue;
print $file->getFilename() . '<br>';
}
scandir
использование:
$files = scandir('.');
foreach($files as $file) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
opendir
и readdir
использование:
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
closedir($handle);
}
glob
использование:
foreach (glob("*") as $file) {
if($file == '.' || $file == '..') continue;
print $file . '<br>';
}
Как уже упоминалось в комментариях, glob
хорошо, потому что используемая там звездочка действительно может использоваться для выполнения совпадений в файлах, поэтому glob('*.txt')
доставит вам все текстовые файлы в папке и glob('image_*')
будет получите все файлы, начинающиеся с изображения _