0

我试图回显文件夹目录中的所有图像,但有几个例外/忽略。

这工作正常,除了它还为它回显的每张照片回显一张空白照片?为什么会发生这种情况,有人可以告诉我哪里出错了,谢谢。

<?php
$dirname = "./data/photos/".$profile_id."/";
$images = scandir($dirname);
$ignore = Array("_cover.jpg", "_default.jpg");

foreach($images as $curimg){
    if(!in_array($curimg, $ignore)) {
        echo "<img src='./data/photos/".$profile_id."/$curimg'/ class=\"profile_photos\"><br>\n";
    };
}     
?>
4

2 回答 2

0

您的图像源后似乎有一个额外的斜线:

    echo "<img src='./data/photos/".$profile_id."/$curimg'/ class=\"profile_photos\"><br>\n";
//--------------------------------------------------------^ here

这可能会影响浏览器解析 DOM 的方式并导致出现额外的图像。

另外,小建议,请尝试改用此行:

    echo "<img src='".$dirname.$curimg."' class=\"profile_photos\"><br>\n";
于 2013-04-10T19:05:49.937 回答
0

您应该确保它$curimg实际上是一个 jpg 文件:

    if(!in_array($curimg, $ignore) && preg_match("/\.jpg$/i", $curimg)) {

scandir不仅返回文件,还返回子目录,包括...

于 2013-04-10T19:06:44.100 回答