从目录php发布图像

时间:2013-10-27 21:22:09

标签: php image post directory

我是php的新手,我想遍历根文件夹中的images目录并将这些图像发布到网页上。我使用以下代码来执行此操作:

<?php
$dir = "images/*.jpg";
$images = glob( $dir );
foreach( $images as $image ):
  echo "<img src='" . $image . "' />";
endforeach;
?>          

我的问题是如何修改此代码以发布多个.jpg图像,例如带.jpeg扩展名的.gif和jpg,而不创建多个目录变量?

此外,是否有更有效的方式发布这些图像?

非常感谢!

3 个答案:

答案 0 :(得分:0)

这样做的非聪明蛮力方法就是为所有不同的图像类型运行循环。

$dir = "images/*.jpg";
$images = glob( $dir );
foreach( $images as $image ):
  echo "<img src='" . $image . "' />";
endforeach;
$dir = "images/*.png";
$images = glob( $dir );
foreach( $images as $image ):
  echo "<img src='" . $image . "' />";
endforeach;
$dir = "images/*.gif";
$images = glob( $dir );
foreach( $images as $image ):
  echo "<img src='" . $image . "' />";
endforeach;

etc...

答案 1 :(得分:0)

一种优雅的方式是创建一个数组,然后迭代它。

<?php
$imgs = array("images/*.jpg","images/*.gif","images/*.pnj");
foreach( $imgs as $type ){
   $images = glob( $type );
   foreach( $images as $image ):
      echo "<img src='" . $image . "' />";
   endforeach;
endforeach;
?>  

答案 2 :(得分:0)

在构建数组($ images是数组)时,可以将新文件推送到此数组。

$file_extensions = ['jpg', 'png'];

$images_total = [];
foreach ( $file_extensions as $extension ) {
    $dir = "images/*." . $extension;
    $images = glob( $dir );
    foreach $images as $image {
        $images_total[] = $image;
    }
}

现在使用你的最终代码:

<?php
foreach( $images_total as $image ):
    echo "<img src='" . $image . "' />";
endforeach;
?>

我没有测试它,但这是一个想法:)

我输入时回复显示:作为区别,在我的方法中,您可以在开始打印HTML之前构建一个包含文件夹中每个文件的数组。这可能允许您在输出给用户之前对数组进行随机播放或操作:)