フォルダにあるファイルを取得して表示する処理、例えば画像一覧を表示するどありそうな処理をメモ。
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."
";
}
}