【问题标题】:Post images from directory php [duplicate]从目录php发布图像[重复]
【发布时间】:2013-10-27 21:22:09
【问题描述】:

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

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

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

另外,有没有更有效的方式来发布这些图片?

非常感谢!

【问题讨论】:

    标签: php image post directory


    【解决方案1】:

    执行此操作的非聪明蛮力方法是只为所有不同的图像类型运行循环。

    $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...
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • $files = glob("*.{jpg,png,gif}", GLOB_BRACE);
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-03-22
        • 2013-08-30
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        • 2012-01-13
        • 1970-01-01
        相关资源
        最近更新 更多