我试图检索目录中的所有图像,包括所有子目录.我目前正在使用
$images = glob("{images/portfolio/*.jpg,images/portfolio/*/*.jpg,images/portfolio/*/*/*.jpg,images/portfolio/*/*/*/*.jpg}",GLOB_BRACE);
Run Code Online (Sandbox Code Playgroud)
这有效,但结果如下:
images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg
Run Code Online (Sandbox Code Playgroud)
我希望它一次做一个完整的目录分支,结果如下:
images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,欢呼!
PS如果我可以将所有子目录放在投资组合下而不必使用通配符明确说明每个目录,那也是很棒的.
<?php
$directory = '/var/www/ajaxform/';
if (glob($directory . '.jpg') != false)
{
$filecount = count(glob($directory . '*.jpg'));
echo $filecount;
}
else
{
echo 0;
}
?>
Run Code Online (Sandbox Code Playgroud)
此目录中有四个jpg图像,但它返回 0
我正在开发一个 IMDB 风格的网站,我需要动态查找电影的评论量。评论存储在名为的文件夹中,/moviefiles/moviename/review[*].txt其中[*]是评论的编号。基本上我需要以整数形式返回该目录中存在多少个文件。我该怎么做呢?
谢谢。
我找到了一个旧帖子,其中包含了我的问题几乎完美的代码:计算目录中的(多个)文件.它排除了.en ..条目,但不是其他目录.我通过添加评论添加了一个问题,但没有得到答复.(太老的帖子,我想)(计算目录php中的文件数量)
$fi = new FilesystemIterator(images, FilesystemIterator::SKIP_DOTS);
printf("There were %d Files", iterator_count($fi));
Run Code Online (Sandbox Code Playgroud)
在php.net上搜索过,但很多这个主题都没有记录.我确实找到了SKIP_DOTS事实,但没有找到关于如何排除目录的一封信.
现在我的代码生成:有76849个文件,但这也包括子目录.
如何更改此代码,以便排除我的子目录?
更新因为一些答案
/**
PHP version problem, need update first
$files = new FilesystemIterator('images');
$filter= new CallbackFilterIterator($files, function($cur, $key, $iter) {
return $cur->isFile();
});
printf('There were %d Files', iterator_count($filter));
*/
$time0 = time();
$fi = new FilesystemIterator(images, FilesystemIterator::SKIP_DOTS);
$fileCount = 0;
foreach ($fi as $f) {
if ($f->isFile()) {
$fileCount++;
}
}
printf("xThere were %d Files", $fileCount);
$time1 = time();
echo'<br />tijd 1 = '.($time1 …Run Code Online (Sandbox Code Playgroud) 我想让用户在自己的文件夹中上传一些文件(图片).但是,只有当文件夹包含的图片少于五张时才应该这样.如果已经有5张图片,脚本必须让用户知道他/她的文件夹已满.所以,我想知道php中是否有函数来计算文件夹中的文件数量.或者在PHP中的任何其他方式来做到这一点?提前致谢.