【PHP】 scandirによるフォルダ内のファイル一覧を表示する

php

フォルダにあるファイルを取得して表示する処理、例えば画像一覧を表示するどありそうな処理をメモ。

scandir関数でファイル名を取得する

scandirを実行するとファイル名を取得できる。取得できたらcount関数で総数をチェックしてfor分で処理する

//
        $dir_s="upload/s/";

        //ディレクトリ内のファイルを取り出す
        $filelist=scandir($dir_s);
        
        //ファイル数をチェック
        $count=count($filelist);
        //
        for($i=0; $i<$count; $i++){
           ~~
        }

pathinfo関数で拡張子をチェックする

pathinfo関数で dirname (ディレクトリ名)、basename (ファイル名)、 extension (拡張子)とfilename(ファイル名(拡張子抜き))が取得できる「PHP マニュアル -pathinfo -

$dir_s="upload/s/";

//ディレクトリ内のファイルを取り出す
$filelist=scandir($dir_s);
        
//ファイル数をチェック
$count=count($filelist);

for($i=0; $i<$count; $i++){
$file=pathinfo($filelist[$i]);
$file_name=$file["basename"];
$file_ext=$file["extension"];

//jpeg形式のファイルを表示する
if($file_ext=="jpg"){
    echo "アップロード:".$dir_s.$file_name;
    echo "
"; } }

scandirのみでファイル名だけ取得

上記の方法もあるのですが、scandirだけでもファイル名が取得できるので、そいつを追記します。
ただscandirの場合はディレクトリー名も取得するのでディレクトリー名を除きたかった場合には「is_dir」関数でチェックして除くといい

 
$dir_s="image/";
 
//ディレクトリ内のファイルを取り出す
$filelist=scandir($dir_s);

foreach($filelist as $file){
if(!is_dir($file)){ //ファイル名のみでディレクトリー名をのぞく場合
echo "

".$file."

"; } }