imgフォルダ内に画像が複数(数千枚)置いてあり、拡張子は不明だが、ファイル名だけ変数として持っており、該当のファイル名があればその画像を表示、無ければplaceholderの画像を表示したい。
まず画像を用意します。
拡張子分foreachで探してみたが、
$name = "cat"; $cfg = array('jpg', 'jpeg', 'png', 'gif'); foreach($cfg as $key){ if(file_exists("img/" .$name . "." . $key)){ echo "<img src='img/" . $name . "." .$key."' width='150px' height='100px'>"; } }
これだと、拡張子の配列分回さないといけないのと、画像が無ければ、placeholderの表示ができない。
globとワイルドカードを使う
$name = "cat"; $result = glob("img/" . $name . ".*"); if(in_array($result)) { echo '<img src="'.$result[0].'" width="150px" height="100px">'; } else { echo '<img src="/img/150x150.png">'; }
OK!上等!
続いて、少々細かいことを調査していきます。