「product」というフォルダの中に複数の画像ファイルが入っていたとする。
その中の.jpgファイルだけ取得してimgタグにて書き出す方法。
<?php
$dir = "product/";
$filelist = glob($dir . '*.jpg');
foreach ($filelist as $file) {
if (is_file($file)) {
echo <<< eof
<li><img src="{$file}"></li>
eof;
}
}
?>
grobで特定の拡張子だけ選ぶ方法
//.jpgだけ選ぶ
$filelist = glob($dir . '*.jpg');
//.pngだけ選ぶ
$filelist = glob($dir . '*.png');
//.txtだけ選ぶ
$filelist = glob($dir . '*.txt');
glob — パターンにマッチするパス名を探す
glob(string $pattern, int $flags = 0): array|false
Special characters:
* – ゼロ文字以上の文字にマッチします。
? – 正確に(任意の)一文字にだけマッチします。
[…] – グループ化された文字のうち、一文字にマッチします。
はじめの文字が ! だった場合、 グループにないあらゆる文字にマッチします。
\ – 次に来る文字をエスケープします。 但し、GLOB_NOESCAPE が使われている場合は除きます。
$patternの例
???.png⇒拡張子は.png、ファイル名は任意の3文字
a*.png⇒拡張子が.png、先頭の文字は必ずa、それ以降は0個~無限の任意の文字