PHP glob()函数未返回所有文件

3
我在这个网站上搜索并找到了一段非常有用的代码片段,我已经成功使用了它。
  $counter = 0; 
     foreach (glob("images/gallery/photo_gallery/resized/*.jpg") as $pathToThumb)
    {
        $filename = basename($pathToThumb);
        $pathToLarge = 'images/gallery/photo_gallery/' . $filename;
        echo ('<a href="'.$pathToLarge.'"><img src="'.$pathToThumb.'" /></a>');
        $counter++;
    }

但是出于某种原因,这个代码只返回了我目录中的前30张图片(实际有81张)。有人能想到为什么会出现这种情况吗?
谢谢。

展示你的代码运行结果和期望得到的结果。 - bcosca
1
你能展示一些文件名的例子吗?你确定它们以“jpg”结尾而不是例如“jpeg”吗?你确定这不是一个权限问题吗?另外(我认为与问题无关),在你创建的网页链接中,你漏掉了“/resized”部分。 - Pekka
这个$counter变量是做什么用的?是的,名称可能区分大小写。为什么不列出所有文件,“images/gallery/photo_gallery/resized/*”?除了缩略图之外还有其他文件吗? - Your Common Sense
$counter变量只是为了方便我使用,这样我就不必手动计算每个结果。 - shane
2个回答

1

感谢大家的帮助。

这就是答案——在 glob() 中使用文件扩展名时,扩展名是区分大小写的,这是我不知道的事情。

我的30个文件以 .jpg 结尾,而其余的文件则通过一个调整大小的程序进行了自动重命名为 .JPG。

所以这意味着 glob("imagesPath/*.jpg") 只返回小写匹配项。

又学到了一课 :)

希望这个答案也能帮助其他人。:)


1

如我所说

$path = 'images/gallery/photo_gallery/resized/*';

这就足够了。或者,如果你执意只想要jpg格式的话,

$path = 'images/gallery/photo_gallery/resized/*.[Jj][Pg][Gg]';

按照手册建议


$path = 'images/gallery/photo_gallery/resized/*.[Jj][Pg][Gg]'; 这对我很有用。谢谢 :) - shane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接