web関連
【php】特定のディレクトリ内の特定のファイル名の画像情報を取得
ディレクトリ内でファイル名だけ指定して後は拡張子がなんであれ自動で判別して出力してくれないかどうか調べた時の備忘録
ディレクトリ内に特定の名前の画像があれば拡張子がなんであれ出力するphp
wordpressでlogoという名前の画像ファイルを探してあれば形式に関わらず出力するようにしてる
静的サイトで使うときは「get_template_directory()」部分を差し替えてね
以下のphp関数使った(知らなかったからメモ)
- scandir — 指定したディレクトリ内にあるディレクトリやファイルを配列で返す
- pathinfo — 画像ファイルとかをファイル名や拡張子と配列で分割して返してくれる
<?php
$dir = get_template_directory().'/image/';// ディレクトリの指定
$filelist = scandir($dir);// ディレクトリ内ファイル等のリストを取得
$count = count($filelist);// ファイル数をカウントする
for($i=0; $i<$count; $i++){// 中身をfor文で取得
$file=pathinfo($filelist[$i]);
// $file_dir=$file["dirname"];// ディレクトリ名
$file_basename=$file["basename"];// ファイル名
// $file_ext=$file["extension"];// 拡張子名
$file_filename=$file["filename"];// 拡張子を抜いたファイル名
//logoという画像ファイルがあれば表示する
if($file_filename=="logo"){
$dir_url=get_template_directory_uri().'/image/';// 画像ファイルのあるディレクトリへのURL
echo "<img src='".$dir_url.$file_basename."'>";// 画像ファイルを出力
}
}
?>
これで画像ファイル名が一致すれば画像形式がなんであれ画像を表示することができる
※同一ファイル名があった時のことは考慮してません
僕が用意したベーステーマがlogo画像svgで指定してあってpngの時とかまちまちで一々指定し直すの面倒なんで調べてやってみたけど、読み込み周りで遅くなりそうだから使うのは辞めておこうかな…