PHPで、ディレクトリ構造をXMLに書き出すプログラムを作成しています。


決まったディレクトリ下のディレクトリ一覧を取得しいのですが
求めたい結果がえられません。

あるディレクトリ下にあるディレクトリのリストを配列で返すFunctionとして
以下を作成したのですが、is_dir のところで、ディレクトリなのにfalseが返ってきてしまいます。

function getDirList($trgDir){
$a = array();
if ($dir = opendir($trgDir)) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != "..") {
if(is_dir($file)){
array_push($a, $file);
}
}
}
closedir($dir);
return $a;
}
}

環境:Windows PHP5, apache2

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/06/22 12:26:01
  • 終了:2007/06/22 13:01:52

回答(2件)

id:studioes No.1

studioes回答回数522ベストアンサー獲得回数612007/06/22 12:36:01

ポイント35pt

is_dir($trgDir.'/'.$file)ってことじゃないかな?

$fileはファイル名のみだから、ディレクトリを付けてやらないと・・・

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

id:ken1bf7

ありがとうございます。

2007/06/22 13:01:34
id:elf No.2

えるふん回答回数76ベストアンサー獲得回数82007/06/22 12:53:20

ポイント35pt

この場合,$fileはディレクトリ内のファイル名やディレクトリ名が入っているだけです.

ls_dir()は絶対パス,あるいはgetcwd()からの相対パスを期待していると思うので,

 if(is_dir($file)){

 if(is_dir($trgDirDIRECTORY_SEPARATOR..$file)){

だと思います.

http://php.net/is_dir

id:ken1bf7

ありがとうございます。

2007/06/22 13:01:37

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

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

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

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

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