从目录 - PHP 输出所有图像


output all images from a directory - php

我正在尝试通过 php 从目录中提取所有图像并将它们打印为< li < img src="url..等等......

在对SO做了一些研究之后,我发现glob函数应该可以很好地达到这个目的,但不幸的是我无法让它工作。我认为问题在于我试图回显路径中的 ID?但是作为一个新手,我似乎看不到我的错误。

    <? 
        $dirname="images/companies/";  
        echo '$current['id']';
        $images = glob($dirname."*.jpg");
        foreach($images as $image) {
            echo '<img src="'.$image.'" /><br />';
        } 
    ?>

$dirname."*.jpg"之间没有目录分隔符,所以除非你的$current['id']以斜杠结尾,否则 glob 将不起作用。

尝试将$dirname."*.jpg"替换为 $dirname."/*.jpg"

另外:您的$dirname是相对于当前 PHP 工作目录的。要确保无论从何处调用 PHP 都可以正常工作,请使用 $dirname=dirname(__FILE__)."/images/companies/".$current['id']

  1. 确保 thar $dirname 相对于当前路径或使用绝对路径,例如:

    $dirname = $_SERVER['DOCUMENT_ROOT']."/../some/path/images/companies/";

  2. 确保您的路径没有缺少斜杠,如果$current['id']没有尾部斜杠,则必须编写:

    $images = glob($dirname."/*.jpg");

当 oyu 只是窃取代码但不了解它的作用时,这就是问题所在。

如果你想扫描一个目录,你可以使用 scandir(),它返回一个数组,其中包含它找到的所有文件,例如

$files = scandir("your/path/");

要显示它们,您只需使用 print_r(),它丑陋且未格式化,但它确实有其目的,如果您想要更多,请使用 echo 和 html/css:

echo "<pre>";
print_r($files);
echo "</pre>";

没有完成的代码,自己想一想。