PHPでディレクトリの内容を取得して配列に変換する方法を教えてください。

下記のプログラムによりディレクトリ内のファイルを取得するまでは出来ております。

<?php
define("TEST_READDIR", ".");
header("Content-Type: text/plain; charset=EUC-JP");

// ディレクトリを開く
$handle = opendir(TEST_READDIR);


echo "[ファイル]\n";
while (($entry = readdir($handle)))
{
if(is_file(TEST_READDIR . "/" . $entry))
{
echo $entry . "\n";
}
}

// ディレクトリを閉じる
closedir($handle);
?>

取得したファイル名を配列に変換するには
どのようにすればよろしいでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/20 19:44:13
  • 終了:2007/04/20 21:05:04

回答(3件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/04/20 20:07:53

ポイント16pt
while (($entry = readdir($handle)))
{
  if(is_file(TEST_READDIR . "/" . $entry))
  {
    $files[] = $entry ;
  }
}

こういうことですか?

http://q.hatena.ne.jp/1177065851

id:t_yasu

while (($entry = readdir($handle)))

{

if(is_file(TEST_READDIR . "/" . $entry))

{

$files[] = $entry ;

echo $files[5];

}

}

としてみましたが、結果は

echo $entry

と同じです。

教えていただいたもので配列になっているのでしょうか?

それとも「echo」がおかしいのですか?

2007/04/20 20:21:23
id:studioes No.2

studioes回答回数522ベストアンサー獲得回数612007/04/20 20:28:43

ポイント32pt

$files[5];

$files配列のインデックス5要素と言う表記ですが。

$filesが配列です。 echo $filesなら配列だと怒られることでしょう。

var_dump($files)ならArrayになっていることがわかるかと思います。

http://q.hatena.ne.jp/

id:t_yasu

有り難うございます。

教えていただいた内容でブラウザに表示させてみると

ファイルの数だけ(今回は20)まで下記のように表示されました。

array(1) {

[0]=>

string(7) "111.jpg"

}

.

.

.

array(20) {

[0]=>

string(7) "001.jpg"

[1]=>

string(7) "002.jpg"

[2]=>

string(7) "003.jpg""

.

.

.

[19]=>

string(7) "020.jpg""

}

最後に表示される

array(20) {

........

}

のファイル名だけが取得したいのですがどのようにしたらよろしいでしょうか?

2007/04/20 20:45:27
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582007/04/20 20:57:24

ポイント32pt

$files[] = $entry ; は配列 $files に whileループがまわるごとに $entry を付け加えています。

while (($entry = readdir($handle)))
{
  if(is_file(TEST_READDIR . "/" . $entry))
  {
    $files[] = $entry ;
  }
}

echo $files[19] ;

のようにループの外に出してみてください。

http://q.hatena.ne.jp/1177065851

id:t_yasu

いけました!

ありがとうございました。

2007/04/20 21:04:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません