我有一个图片目录,我想循环并进行一些文件计算。它可能只是缺乏睡眠,但我如何使用PHP查看给定目录,并使用某种for循环遍历每个文件?
谢谢!
答案 0 :(得分:246)
$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
}
答案 1 :(得分:56)
查看DirectoryIterator课程。
来自该页面上的一条评论:
// output all files and directories except for '.' and '..'
foreach (new DirectoryIterator('../moodle') as $fileInfo) {
if($fileInfo->isDot()) continue;
echo $fileInfo->getFilename() . "<br>\n";
}
答案 2 :(得分:8)
查找函数glob():
<?php
$files = glob("dir/*.jpg");
foreach($files as $jpg){
echo $jpg, "\n";
}
?>
答案 3 :(得分:3)
尝试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 />";
}
答案 4 :(得分:2)
在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!';
}