デジットさんの生活便利サイトトップへ デジットさんの画像をまとめて表示(PHP)

トップページ > ホームページ作成 > 画像をまとめて表示

PHPをつかって、指定されたディレクトリ(フォルダー)の画像を自動的に選択し全ての画像を縮小表示する方法です。縮小された画像を選ぶと元の大きさの(拡大)画像を見ることが出来ます。

画像を選択し全て表示する手順

「dir ディレクトリクラス」を使いました。指定されたディレクトリ(フォルダー)の中にあるファイルを順次読み取り、画像ファイルなら縮小表示していきます。画像と認識されたファイルには、元の大きさの拡大表示が出来るように、読み取ったファイル名からリンクを貼り付けていきます。
このサンプルは、ディレクトリを入力して画像を表示出来るようにしていますので、自分のサーバーに置いて試してみてください。次の2つのファイルから構成されています。

  1. 画像ファイルを順次表示する実行ファイル「img_viewer.php」
  2. 元の大きさの画像を表示するファイル「imgview.php」

サンプルリスト

画像ファイルを順次表示「img_viewer.php」のサンプルリスト

「dir()」は、ディレクトリを読むための疑似オブジェクト指向の機構です。「$ch_dir = dir($dir_path) 」でオブジェクトを作り、処理が終わったら、「$ch_dir -> close()」で閉じます。「$ch_dir -> read()」で、指定されたディレクトリの中にあるファイルを読みます。
「<a href = \"imgview.php?d=" .urlencode(mb_convert_encoding($ln_path, "UTF-8")). "\" target = \"_blank\" >"」がリンク先です。「d」の引数としてパスつきのファイル名をURLエンコード関数urlencode()を使用し、リンク先に渡します。URLエンコード関数の元の文字コードは「UTF-8」である必要がありますので、「mb_convert_encoding($ln_path, "UTF-8")」で、ブラウザの文字コードを「UTF-8」に変換しました。
「<img src = \"" .$ln_path. "\" width=\"100\" border=\"0\"></a>"」は、選択された画像を縮小表示するところです。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>PHPの画像表示(指定したディレクトリ内の画像)</title>
</head>
<body>
<p><strong>画像表示</strong></p>
<form method="post" action="./img_viewer.php"><!-- 自分のファイル -->
<p>このファイルが置いてあるところからの相対アドレス(とディレクトリ名)を入力。<br>
このファイルの置いてあるディレクトリは、「.」または「./」。一つ上のディレクトリは「../」。
ディレクトリ名:<input type ="text" name="chdir" /><br>
<input type="submit" value="送信" />  <input type="reset" value="リセット" /></p>
</form>
<br><br>
<?php
//ディレクトリ名
$dir_path = $_POST["chdir"];
if (is_dir($dir_path) and ($dir_path != "/")) {
if(is_readable($dir_path)){// — ファイルが読み込み可能かどうか
$ch_dir = dir($dir_path); //ディレクトリクラス
echo "<p>相対アドレス ディレクトリ: " .htmlspecialchars($dir_path). "</p>";
echo "<p>絶対アドレス ディレクトリ: " .realpath($ch_dir ->path). "</p>";
echo "画像ファイル一覧(画像ファイルがない場合は表示されない):<br/>";
//ディレクトリ内の画像を一覧表示
while (false !== ($file_name = $ch_dir -> read())){
$ln_path = $ch_dir -> path . "/" .$file_name;
if (@getimagesize($ln_path)){ //画像かどうか?
echo "<a href = \"imgview.php?d=" .urlencode(mb_convert_encoding($ln_path, "UTF-8")). "\" target = \"_blank\" >";
echo "<img src = \"" .$ln_path. "\" width=\"100\" border=\"0\"></a>";
}
}
$ch_dir -> close();
}
else{
echo "<p>" .htmlspecialchars($dir_path)." は読み込みが許可されていません。";
}
}
else {
if ($_POST["chdir"] != ""){
echo "<p>" .htmlspecialchars($dir_path)." は存在しません。</p>";
}
}
?>
</body>
</html>

元の大きさの画像を表示「imgview.php」のサンプルリスト

引数で渡された画像ファイルのデータから、画像を表示するだけです。

<?php
//指定された画像をブラウザに表示 
$file_name = $_GET["d"]; //ファイル名
if (@getimagesize($file_name)){ //画像かどうか?
echo "<img src = \"" .$file_name. "\" >";
}
?>

実行結果

画像表示の例

このように、選択されたフォルダーに画像ファイルがあれば、全て表示されます。表示された画像をクリックすると、その画像が拡大表示されます。フォルダーに画像がない場合は、表示されません。存在しないフォルダーを指定した時の対応も出来ています。
レンタルサーバーの「ロリポップ」では、動作確認しております。

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

関連ページ

ホームページ作成

PHP5を使う

アフィリエイトをする

PHPの使い方

デジットさんのホームページ入門に移行中

スポンサード リンク

Amazon.co.jpアソシエイト:
PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :5

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.