Ответ 1
$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
}
У меня есть каталог изображений, которые я хочу выполнить, и выполнить некоторые вычисления файлов. Это может быть просто недостаток сна, но как я могу использовать PHP для поиска в заданном каталоге и прокручивать каждый файл, используя какой-то цикл for?
Спасибо!
$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!';
}