2017年2月16日木曜日

ディレクトリ内の画像を一覧するウェブページ

ちょっと必要があって、
ウェブサーバの指定ディレクトリに無造作に置かれた画像を
ブラウザでざっと見るようなウェブページを
PHPでささっと作りました。

対象ディレクトリをopendir()で開いて、
それに対してreaddir()を繰り返し呼ぶことで、
そのディレクトリに置いてあるファイル、
あるいはディレクトリの名前が順々に得られます。
なので、それがファイルであることとJPG画像であることを判定して
配列に収めておき、都合がいいように並べ替えて、
各ファイルをhtmlページに貼っ付けていけばいいわけです。
例えば以下のようなhtmlドキュメントになります。
<html>
<head>
<title></title>
</head>
<body>
<
$d="<対象ディレクトリのシステム内部から見たフルパス(最後の文字は'/')>";
if(is_dir($d) && $h=opendir($d)){
 while(($f=readdir($h))!==false){
  if(filetype($d.$f)=="file"){
   if(substr($f,-3)=="jpg"){    // 拡張子が"jpg"のファイルのみ抽出
    $fs[]=$f;    // ファイル名を配列に格納
   }
  }
 }
 closedir($h);
}

rsort($fs);    // 降順に並べ替え

foreach($fs as $f){
    // 各ファイルのファイル名$fに対して処理
    printf("<img src=\"<対象ディレクトリのウェブサーバ上の相対パス>/$f\" />\n");
}
?>
</body>
</html>

まあ基本はこれでよくても、画像が多すぎると困ったことになるので、
検索サイトでよくある[次の10件]的なリンクで
移動できるようにするのがよいでしょう。
いろいろと機能を増やしていくと楽しいサイトになるかもしれません。
何かの参考になれば幸いです。

0 件のコメント:

コメントを投稿