指定ディレクトリ(フォルダ)内の画像ファイルを抽出してランダム(重複なし)に表示させる最短コード

ランダム画像の需要は多いが、配列を記述して並べ替え…云々と結構面倒くさいコードになるが、極力手間を省いてランダム表示するコードを模索したところ『glob』関数を使えば、これ以上ない簡単なコードができました。

<?php
$img = glob($_SERVER['DOCUMENT_ROOT'].'/指定ディレクトリ/*.{png,jpg,jpeg,gif}', GLOB_BRACE);
shuffle($img);
?>

指定ディレクトリ内の画像(png、jpg、jpeg、gif)を「glop」で変数「$img」に配列化。続いて配列$imgをshuffle(ランダムに並べ替え)します。

<?php
echo '<p><img src="https://' .$_SERVER['HTTP_HOST']. '/指定ディレクトリ/' .basename($img[0]). '"></p>'."\n";
echo '<p><img src="https://' .$_SERVER['HTTP_HOST']. '/指定ディレクトリ/' .basename($img[1]). '"></p>'."\n";
echo '<p><img src="https://' .$_SERVER['HTTP_HOST']. '/指定ディレクトリ/' .basename($img[2]). '"></p>'."\n";
?>

後は、表示したい場所で、配列$img[0~]をechoするだけ。

さらにbasenameは、ファイル名を取得しますので、ファイル名の指定すら必要なく、自動的に拡張子「png、jpg、jpeg、gif」を重複することなく表示します。

Web制作覚書