目录中每个文件的循环代码
我有一个图片的目录,我想通过循环,并做一些文件计算。 它可能只是缺乏睡眠,但我怎样才能使用PHP来查看给定的目录,并使用某种for循环遍历每个文件?
谢谢!
scandir :
$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"; }
recursion版本是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 />"; }
在foreach循环中使用glob函数来执行任何选项。 在下面的例子中,我还使用了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!'; }