• ベストアンサー

ファイル名を取得できない

次のようなソースでディレクトリ内のファイル名を取得しようとしています。 $dh=opendir("."); while(($entry=readdir($dh))){ if(is_file($entry)){ print $entry."<>"; } } closedir($dh); このソースを、取得したいディレクトリ内で動かすとまったく問題ないのですが、ディレクトリのパスを1個上の階層などから相対パスで指定すると、.phpファイルと.htmlファイルは取得するのですが、ほかのファイル名は取得されなくなってしまいます。 何かphp.iniなどで設定があるのでしょうか。 回避方法がありましたら是非ご教授ください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ファイル名にディレクトリ名をつける必要があるのでは。 $dir = "./test";//ディレクトリ名を変数に確保 $dh=opendir($dir); while(($entry=readdir($dh))){ if(is_file($dir."/".$entry)){//ファイル名にディレクトリを追加 print $entry."<>"; } } closedir($dh);

umioyo
質問者

お礼

ありがとうございます。 きちんと取得できました。 そうですね。ディレクトリ内の情報だけ取得してもそれがファイルかどうか判別するところではちゃんとパスを指定しないとわからないですよね。 なんか自分で気づかなかったのが悔しいです・・・w ありがとうございました。

その他の回答 (1)

回答No.2

書いてみました。 私の環境では出来ましたので、こんな感じでいかがでしょうか。 ANo.1の方の回答と酷似してますね^^; <?php if($dh=opendir("../dir_name")){ while(false !== ($entry = readdir($dh))){ if ($entry != "." && $entry != "..") { if(is_file("../dir_name/". $entry)){ echo "$entry\n"; } } } } closedir($dh); ?>

umioyo
質問者

お礼

わざわざどうもありがとうございました。 無事取得できました。 phpファイルとhtmlファイルだけ取得できたのは、同じファイル名のファイルがそれぞれのディレクトリにあったからでした。 お恥ずかしい・・・

関連するQ&A

専門家に質問してみよう