ここまでPHPを勉強してわかったことは、プログラムは上から下に実行されます。
あとイニシャライズ、まあ、代入です、をしたほうが良いかもです。
なんとなくですが、これがわかってればプログラムの意味も理解出来てきます。たぶんですけど。
では、一覧画面を作ります。chap3フォルダの中にshow_image.phpを作成します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
</style>
<title>画像一覧</title>
</head>
<body>
<?php
// 保存先のディレクトリ
$dir = 'uploads/';
$dir_s = 'uploads/s/';
// ディレクトリ内のファイルを取り出す
$files = scandir($dir_s);
// ファイル数を取り出す
$count = count($files);
?>
<p>■画像一覧
<br />
<table border="0">
<?php
// 列の位置
$col = 0;
// ファイルの取り出し
for ($i = 0; $i < $count; $i++) {
// ファイル情報を取り出す
$file = pathinfo($files[$i]);
// ディレクトリ名
$file_dir = $file['dirname'];
// ファイル名
$file_name = $file['basename'];
// ファイルの拡張子
$file_ext = $file['extension'];
// 拡張子なしのファイル名
$name = $file['filename'];
// 拡張子がjpg、gif、pngのファイルを表示する
if ($file_ext == 'jpg' || $file_ext == 'gif' || $file_ext == 'png') {
// 列の加算
$col++;
//先頭ならばTRタグ開始
if ($col == 1) echo '<tr valign="top">';
// TRタグ開始
echo '<td bgcolor="#eeeeee">';
// ファイル名の表示
echo $file_name;
echo '<br />';
// リンク、画像の表示
echo '<a href="'. $dir . $file_name . '" target="blank" /><img src="'. $dir_s . $file_name . '" /></a>';
// TDタグ終わり
echo '</td>';
// 5列目ならTRタグ終わり、列位置を0に戻す
if ($col == 5) {
echo '</tr>';
$col=0;
}
echo '<p>ディレクトリ名:' . $dir . $file_dir . '<br /></p>';
echo '<p>アップロード画像:' . $dir . $file_name . '<br /></p>';
echo '<p>サムネイル画像:' . $dir_s . $file_name. '<br /></p>';
echo '<p>拡張子なしのファイル名:' . $dir . $name. '<br /></p>';
}
}
// 列の残りを埋める
if ($col > 0) {
echo '</td colspan="' . (5 - $col) . '" bgcolor="#cccccc"></td></tr>';
$col=0;
}
?>
</table>
</p>
</body>
</html>
●scandir(ディレクトリのパス)
・・・ディレクトリ内のファイル一覧取得します。
●count(配列)
・・・配列の要素の数を取得です。
ここでは$filesの要素数を数えます。
例えば要素数8の配列なら
$ary[0]~[7]まで存在します。
この場合
count($ary)は8です。
●for文
・・・繰り返し処理、ループ処理です。
この教本の場合、①$iに0を代入して、②$countが$iより大きいとき③処理が行われます。処理が終わると$iに1が足され②からもう一度やります。
$countが$iより小さくなるまでループします。
●pathinfo(ファイルのパス)
・・・ファイル情報を取り出す関数です。
$~['dirname']・・・ディレクトリ名です。
$~['basename']・・・ファイルパスです。
$~['extension']・・・拡張子です。
$~['filename']・・・拡張子なしのファイルパスです。
↑サムネイルが表示されるとこんな感じです。(※画像はクリックすると拡大できます。このサムネイル表示画面はCSSで装飾してあるので、実際はもっとシンプルな表示画面です。)
PR