无法使用php显示文件夹中的图像

时间:2016-03-07 12:13:37

标签: php html

我可以通过使用<img>标记引用来显示单个图像,但我有很多图像,因此需要花费很多精力才能单独引用每个图像。

这是我的PHP代码

<?php
$folder_path = 'paintings/'; //image's     folder path

$num_files = glob($folder_path .     "*.{JPG,jpg,jpeg,gif,png,bmp}",     GLOB_BRACE);

$folder = opendir($folder_path);

if($num_files &gt; 0)
{
    while(false !== ($file =     readdir($folder))) 
{
        $file_path =     $folder_path.$file;
        $extension = strtolower(pathinfo($file ,PATHINFO_EXTENSION));
    if($extension=='jpg' || $extension =='png' || $extension == 'jpeg'|| $extension == 'gif' || $extension == 'bmp') 
    {
        ?&gt;
            &lt;a href="&lt;?php echo     $file_path; ?&gt;"&gt;&lt;img src="&lt;?php echo $file_path; ?&gt;"  height="250" /&gt;&lt;/a&gt;
            &lt;?php
    }
}
}
else
{
echo "the folder was empty !";
}
closedir($folder);
?>

1 个答案:

答案 0 :(得分:2)

根据评论,您的代码不起作用,因为 - 出于神秘的原因 - 您更改了<>中的所有&lt;&gt;(也许您已从某些网络源复制了代码?)

BTW,对于记录:您使用glob()检索总文件编号,然后使用readdir()来处理每个文件。

您可以直接处理glob()结果,从而提高代码的效果:

<?php
$folder_path = 'paintings/'; //image's     folder path
$files = glob($folder_path . "*.{JPG,jpg,jpeg,gif,png,bmp}", GLOB_BRACE);

if( count( $files ) )
{
    foreach( $files as $file_path )
    {
        ?>
            <a href="<?php echo $file_path; ?>"><img src="<?php echo $file_path; ?>"  height="250" /></a>
        <?php
    }
}
else
{
    echo "the folder was empty !";
}
?>

无需检查扩展程序(glob()只有您想要的文件)。