HOME   入り口   MENU


No32.何が入っているんだろう? ---- ディレクトリの内容




イメージなどを一つのディレクトリに入れておくと。
気がついたときにかなりの量になります。

「あれ?どんな画像が入っていたっけ?」

なんてときに使うと便利です。(私だけかな・・・(笑))

ディレクトリの中身を見るにはopendirreaddirを使います。
そして読み終わった後にclosedirで開いたハンドルを閉じます。

このPHP離れ島で使っている画像ディレクトリのファイル名を見てみましょう〜♪
画像ディレクトリは相対パスで「img/php」という場所にあります。
<?php
//ディレクトリを開く
$dir=@opendir("img/php") or die("ディレクトリののオープンに失敗しました");
while($file = readdir($dir)) {
    if (!is_dir($file)){
        echo $file ."<BR>";
    }
}
closedir($dir);
?>

これを実行すると

200301195.jpg
20030109s.jpg
20030618.jpg
20040106.jpg
20030119.jpg
200301193.jpg
20030109.jpg
20050208.jpg
200301308.jpg
20030828.jpg
20050201.jpg
20030727s.jpg
20030520s.jpg
20030521.jpg
200305242.jpg
200301307.jpg
20030522s.jpg
20030307.jpg
20030604s.jpg
20041028.jpg
20030114.jpg
20030530.jpg
20030927.jpg
20030112.jpg
20030520.jpg
menu.jpg
20050202.jpg
20030117s.jpg
200301192.jpg
20030524s.jpg
20030814.jpg
20030115s.jpg
200301191.jpg
20030521s.jpg
20030330.jpg
20030530s1.jpg
20030108s.jpg
20050207.jpg
20030524.jpg
20030108.jpg
20030617s.jpg
20030604.jpg
20030617.jpg
20030805b.jpg
20030111.jpg
main.jpg
20030527.jpg
20030527s.jpg
20030522.jpg
20040218.jpg
20030117.jpg
20030530s2.jpg
20030910.jpg
20040103.jpg
20040527.jpg
20030330s.jpg
20040218small.jpg
20030306.jpg
20040602.jpg
20030727.jpg
20030115.jpg
20040218small.png
200301194.jpg
20030111s.jpg
20030110.jpg


わ。思っていたよりもたくさんファイルがあったっ(*_*)

一行ずつ説明すると
$dir=@opendir("img/php") or die("ディレクトリのオープンに失敗しました");
opendirで「img/php」というディレクトリを開き$dirにそのハンドルを格納します。
or dieをつけることでディレクトリを開けなかったときにエラーを出し終了します。

while($file = readdir($dir)) {
では開いたディレクトリのハンドルを使ってreaddirし、
そのディレクトリの中身のファイルを取得します。
readdirを繰り返すことでファイルを次次と読んでいきます(^_^)

if (!is_dir($file)){
ここでは$fileがディレクトリかどうかをチェックします。
ファイルだけを列挙したいので、「ディレクトリではないもの」のときechoで出力しています。

せっかくなので画像を表示させてみましょう

<?php
$dir=@opendir("img/php") or die("ディレクトリのオープンに失敗しました");
for($i=1;$i<=6;$i++){
    $file = readdir($dir);
    if (!is_dir($file)){
        echo "<IMG SRC=\"img/php/$file\" BORDER=\"0\">";
    }
}
closedir($dir);
?>


と画像表示されます。(件数は6件だけに限定してます!)

サンプル: こう書くと   ==>    こうなる!

画像が入っているURLを指定するとファイル名を表示します。




(オマケ)
読み込んだファイル名を配列に移しソートをかけることにより
日付名などがついたファイルを更新順に表示したりできます(^_^)ので
それを利用すると更に便利かもです!(サンプル参照)











  HOME