0

私はphpに非常に慣れていないので、ルートフォルダーの画像ディレクトリを繰り返し処理して、これらの画像をWebページに投稿したいと考えています。そのために次のコードを使用しています。

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

私の質問は、このコードを変更して、複数のディレクトリ変数を作成せずに、拡張子が .jpeg の .gif や jpg などの .jpg 以外の画像を投稿する方法を教えてください。

また、これらの画像を投稿するより効率的な方法はありますか?

どうもありがとうございました!

4

3 に答える 3

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;
?>  
于 2013-10-27T21:28:18.983 に答える
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 の印刷を開始する前に、フォルダー内のすべてのファイルを含む配列を作成することができます。これにより、ユーザーに出力する前に配列をシャッフルしたり操作したりできる場合があります:)

于 2013-10-27T21:29:43.457 に答える
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...
于 2013-10-27T21:24:55.523 に答える