从指定目录中提取所有图像,然后显示它们

Jul*_*eto 36 php

如何显示指定目录中的图像?就像我想显示目录中的所有png图像,在我的情况下,我的目录是媒体/图像/图标化.

我试着环顾四周,但似乎没有一个适合我真正需要的东西.

但这是我的尝试.

$dirname = "media/images/iconized/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img src='media/images/iconized/$curimg' /><br>\n";
};
}
Run Code Online (Sandbox Code Playgroud)

希望有人能帮到你.我打开任何想法,建议和建议,谢谢.

Lok*_*ana 83

您也可以使用glob此:

$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");

foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}
Run Code Online (Sandbox Code Playgroud)

  • @MightyLucene您在评论中建议的内容不起作用.这是一种方式:`$ images = glob($ dirname."*.{jpg,gif,png}",GLOB_BRACE);`来自`glob`手册:GLOB_BRACE - 扩展{a,b,c}以匹配'a','b'或'c' (4认同)
  • 你可以写这样的glob("{$ dirname}*.png,{$ dirname}*.jpeg,{$ dirname}*.. gif") (3认同)

Sha*_*lam 16

您可以使用简单的PHP脚本显示文件夹中的所有图像.假设文件夹名称为"images"并将一些图像放在此文件夹中,然后编辑并粘贴此代码并运行此脚本.这是PHP代码

    <?php
     $files = glob("images/*.*");
     for ($i=0; $i<count($files); $i++)
      {
        $image = $files[$i];
        $supported_file = array(
                'gif',
                'jpg',
                'jpeg',
                'png'
         );

         $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
         if (in_array($ext, $supported_file)) {
            echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
             echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
            } else {
                continue;
            }
          }
       ?>
Run Code Online (Sandbox Code Playgroud)

如果您不检查图像类型,请使用此代码

<?php
$files = glob("images/*.*");
for ($i = 0; $i < count($files); $i++) {
    $image = $files[$i];
    echo basename($image) . "<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
    echo '<img src="' . $image . '" alt="Random image" />' . "<br /><br />";

}
?>
Run Code Online (Sandbox Code Playgroud)


小智 5

您需要将循环更改for ($i=1; $i<count($files); $i++)for ($i=0; $i<count($files); $i++):

所以正确的代码是

<?php
$files = glob("images/*.*");

for ($i=0; $i<count($files); $i++) {
    $image = $files[$i];
    print $image ."<br />";
    echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
}

?>
Run Code Online (Sandbox Code Playgroud)