人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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);
?>

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

●質問者: t_yasu
●カテゴリ:ウェブ制作
✍キーワード:echo EUC-JP PHP ディレクトリ ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

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

こういうことですか?

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

◎質問者からの返答

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

{

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

{

$files[] = $entry ;

echo $files[5];

}

}

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

echo $entry

と同じです。

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

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


2 ● studioes
●32ポイント

$files[5];

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

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

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

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

◎質問者からの返答

有り難うございます。

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

ファイルの数だけ(今回は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) {

........

}

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


3 ● GEN111
●32ポイント

$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

◎質問者からの返答

いけました!

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ