- ベストアンサー
複数のファイル名を取得したいのですが…
ディレクトリ内のファイル名を1件づつ取得し、表示したいのですが、readdirを使用し、ファイル名を取得すると、一つの変数に存在するファイル名をまとめて表示してしまいます。 ファイルの件数分、変数へファイル名を入れることは可能でしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>一つの変数に存在するファイル名をまとめて表示してしまいます。 それは、そういうコードを書いているからではないですか。 readdir は1回にひとつのファイル名を返すと思いますが。 $handle = opendir('tmp'); while (false !== ($f = readdir($handle))) { $files[] = $f; } print_r($files);
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
>while (false !== ($file = readdir($handle))) { >while ($file = readdir($handle)) { では、二回読むことになり、 1回目の$fileが上書きされてしまいます。 あと、#1さんが言うように、配列を使いましょう。
質問者
お礼
[]の意味を理解していませんでした(^^; ありがとうございます。
補足
回答ありがとうございます。 $dir="xxx"; if (is_dir($dir)) { if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { while ($file = readdir($handle)) { echo $file; } } closedir($handle); } この書き方では$fileにいくつものファイル名を書き込んでしまうんですよね(--; $file、$file2、$file3と、ディレクトリ内のファイル件数分、変数を作成する方法があればよいのですが…。