忍者ブログ

おやっさんのWEBサイト制作への道

WEBサイト制作ど素人のおやっさんが、HTML、CSS、PHPなど学んでいく技術ブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP009(画像アップローダー04 scandir(ディレクトリのパス),count(配列),for文,pathinfo(ファイルのパス))

ここまで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文

・・・繰り返し処理、ループ処理です。
for文の図
この教本の場合、①$iに0を代入して、②$countが$iより大きいとき③処理が行われます。処理が終わると$iに1が足され②からもう一度やります。
$countが$iより小さくなるまでループします。

pathinfo(ファイルのパス)

・・・ファイル情報を取り出す関数です。

$~['dirname']・・・ディレクトリ名です。
$~['basename']・・・ファイルパスです。
$~['extension']・・・拡張子です。
$~['filename']・・・拡張子なしのファイルパスです。


↑サムネイルが表示されるとこんな感じです。(※画像はクリックすると拡大できます。このサムネイル表示画面はCSSで装飾してあるので、実際はもっとシンプルな表示画面です。)
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

にほんブログ村 IT技術ブログ HTML/CSSへ にほんブログ村 IT技術ブログ PHPへ

最新コメント

[11/23 テスト]

プロフィール

HN:
おやっさん
性別:
非公開

バーコード

ブログ内検索

P R

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました

カウンター