〈PHP〉ファイル一覧を取得する

PHPでディレクトリ内のファイル一覧を取得するメモ。画像リストとかそういうのに使える。

glob()関数を使う

ワイルドカード(*)が使える。拡張子も可。ただしソートはできない。

<?php

foreach(glob('./img/*.jpg') as $filename) {
        //画像表示(リンク付き)
        echo '<a href="' . $filename . '"><img src="' . $filename . '" alt="log"></a>' . "\n";
        //ファイル名のみ
        echo "$filename\n";
}

?>

1行目(foreach〜の部分)でディレクトリ指定できる。
複数指定する場合は以下のように。

foreach(glob('./img/{*.gif,*.jpg,*.png}',GLOB_BRACE) as $filename) {

(参考)PHPマニュアル glob()関数

glob()関数を使わない

sort()関数を使いたい場合。

<?php
$res_dir = opendir('./img/');
while (false !== ($file_list[] = readdir($res_dir)));
closedir($res_dir);

rsort($file_list);

foreach($file_list as $key=>$file) {
    echo '<a href="' . $file . '"><img src="./img/' . $file . '" alt="log"></a>' . "\n";
}

?>

PHP勉強中……。