Loop code for each file in a directory

我有一个图片目录,我想循环通过,并做一些文件计算上。它可能只是缺乏睡眠,但是如何使用 PHP 查看给定的目录,并使用某种 for 循环遍历每个文件?

谢谢!

198436 次浏览

Scandir :

$files = scandir('folder/');
foreach($files as $file) {
//do your work here
}

或者 一团可能更适合你的需要:

$files = glob('folder/*.{jpg,png,gif}', GLOB_BRACE);
foreach($files as $file) {
//do your work here
}

试试 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 />";
}

寻找函数 Globa ():

<?php
$files = glob("dir/*.jpg");
foreach($files as $jpg){
echo $jpg, "\n";
}
?>

Check out the DirectoryIterator class.

来自该网页上的一条评论:

// output all files and directories except for '.' and '..'
foreach (new DirectoryIterator('../moodle') as $fileInfo) {
if($fileInfo->isDot()) continue;
echo $fileInfo->getFilename() . "<br>\n";
}

递归版本是 递归目录迭代器

使用 foreach 循环中的 globb 函数执行任何属于选项的操作。在下面的示例中,我还使用了 file _ vis 函数来检查目录是否存在,然后再进一步。

$directory = 'my_directory/';
$extension = '.txt';


if ( file_exists($directory) ) {
foreach ( glob($directory . '*' . $extension) as $file ) {
echo $file;
}
}
else {
echo 'directory ' . $directory . ' doesn\'t exist!';
}