У меня есть каталог изображений, которые я хочу выполнить, и выполнить некоторые вычисления файлов. Это может быть просто недостаток сна, но как я могу использовать PHP для поиска в заданном каталоге и прокручивать каждый файл, используя какой-то цикл?
Благодаря!
Скандир :
$files = scandir('folder/'); foreach($files as $file) { //do your work here }
или glob может быть еще лучше для ваших нужд:
$files = glob('folder/*.{jpg,png,gif}', GLOB_BRACE); foreach($files as $file) { //do your work here }
Проверьте класс DirectoryIterator .
Из одного из комментариев на этой странице:
// output all files and directories except for '.' and '..' foreach (new DirectoryIterator('../moodle') as $fileInfo) { if($fileInfo->isDot()) continue; echo $fileInfo->getFilename() . "<br>\n"; }
Рекурсивная версия – RecursiveDirectoryIterator .
Ищет функцию glob () :
<?php $files = glob("dir/*.jpg"); foreach($files as $jpg){ echo $jpg, "\n"; } ?>
Попробуйте GLOB ()
$dir = "/etc/php5/*"; // Open a known directory, and proceed to read its contents foreach(glob($dir) as $file) { echo "filename: $file : filetype: " . filetype($file) . "<br />"; }
Используйте функцию glob в цикле foreach, чтобы сделать все возможное. Я также использовал функцию file_exists в приведенном ниже примере, чтобы проверить, существует ли каталог, прежде чем идти дальше.
$directory = 'my_directory/'; $extension = '.txt'; if ( file_exists($directory) ) { foreach ( glob($directory . '*' . $extension) as $file ) { echo $file; } } else { echo 'directory ' . $directory . ' doesn't exist!'; }