Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php目录发布图像_Php_Image_Post_Directory - Fatal编程技术网

从php目录发布图像

从php目录发布图像,php,image,post,directory,Php,Image,Post,Directory,我对php非常陌生,我想遍历根文件夹中的图像目录,并将这些图像发布到网页。我正在使用以下代码执行此操作: <?php $dir = "images/*.jpg"; $images = glob( $dir ); foreach( $images as $image ): echo "<img src='" . $image . "' />"; endforeach; ?> 我的问题是,如何修改此代码以发布超过.jpg的图像,例如.gif和带有

我对php非常陌生,我想遍历根文件夹中的图像目录,并将这些图像发布到网页。我正在使用以下代码执行此操作:

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

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

还有,有没有更有效的方法发布这些图片


多谢各位

要做到这一点,非聪明的蛮力方法是对所有不同的图像类型运行循环

$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...
$dir=“images/*.jpg”;
$images=glob($dir);
foreach($images作为$image):
回声“;
endforeach;
$dir=“images/*.png”;
$images=glob($dir);
foreach($images作为$image):
回声“;
endforeach;
$dir=“images/*.gif”;
$images=glob($dir);
foreach($images作为$image):
回声“;
endforeach;
等

一种优雅的方法是创建一个数组,然后对其进行迭代

<?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;
?>  

在构建阵列时($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之前构建一个包含文件夹中每个文件的数组。这可能允许您在输出给用户之前洗牌或操纵数组:)

$files=glob(“*.{jpg,png,gif}”,glob_括号);