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 13:01:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:studioes No.1

回答回数523ベストアンサー獲得回数61

ポイント35pt

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

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

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

id:ken1bf7

ありがとうございます。

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

回答回数76ベストアンサー獲得回数8

ポイント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

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

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

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

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

回答リクエストを送信したユーザーはいません