• 締切済み

file_exists関数について

file_exists関数を使っていますが、 指定した場所にファイルは存在するにもかかわらず、 Falseが戻ってきてしまいます。 WinXp PHP5 の環境で、ローカルにて行っています。 ファイルはc:commoninit.ini というファイルです。 同パスにinit.iniをおいているのですが。 なにか条件があるのでしょうか。 ご教授願います。

みんなの回答

回答No.4

file_exists関数は、open_basedir外ではダメみたいですよ。 私もこの辺りで苦戦した経験があり、結局ルートディレクトリ外をopen_basedirに追加したら出来ましたから。

bassar
質問者

お礼

大変遅くなってしまい申し訳ありませんでした。 maenet1972さん なるほど、open_basedir外はだめなんですね。 これですっきりしました! ありがとうございました。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.3

No.1です。 WinVistaBussiness XAMPP (basic package) version 1.6.4 + Apache 2.2.6 + MySQL 5.0.45 + PHP 5.2.4 + PHP 4.4.7 + PEAR で試してみましたが、問題ないですね。 こういう時に、意外とあるのは、思い込みでつづりが違っているのを見逃していたなんて事です。 残念ながら、これ以上は思いつきませんね。

bassar
質問者

お礼

fireさん ありがとうございました。 つづり間違いはなかったのですが、maenet1972さんに いただいたご回答で解決しました。 お礼が遅れてしまって済みませんでした。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

「C:のカレントフォルダ」は、貴方が予想しているフォルダとは違うフォルダを指しています。

bassar
質問者

補足

ご回答ありがとうございます。 質問の内容が誤表記になってしまっていました。 すみません。 現在、 $filename= "c:/common/init.ini"; と記述しており、 Cドライブのcommonフォルダの下にinit.iniを おいてあるのですがFalseが戻ってきてしまっています・・。 ただ、その後いろいろいじってみると、 file_existsの戻り値を無視し、 $fp = fopen($filename, "r"); を記述してみると、正しくオープンされ、 ファイルの内容は取得できているのですが・・。 if(!$fp)でファイルのオープンチェックを行っているので、 ファイルがなければここでエラーになるのですが、 file_exists関数が正しく動作しないのが気になっています。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

c:の後に、/ はなしでしょうか? だとしたら、PHPを動かしている所からの相対パスで見ていると 思いますよ。 あと、2重投稿になっているようなので、もうひとつは削除するほうが良いですね。

bassar
質問者

補足

ありがとうございます。 chie65536への回答にも書かせていただきました通りの現象が 起こってしまっています・・。 アドバイスをお願いいたします。 >あと、2重投稿になっているようなので、もうひとつは削除するほうが良いですね。 ご指摘ありがとうございます。修正いたします。