- 締切済み
file_exists関数について
file_exists関数を使っていますが、 指定した場所にファイルは存在するにもかかわらず、 Falseが戻ってきてしまいます。 WinXp PHP5 の環境で、ローカルにて行っています。 ファイルはc:commoninit.ini というファイルです。 同パスにinit.iniをおいているのですが。 なにか条件があるのでしょうか。 ご教授願います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- maenet1972
- ベストアンサー率68% (26/38)
file_exists関数は、open_basedir外ではダメみたいですよ。 私もこの辺りで苦戦した経験があり、結局ルートディレクトリ外をopen_basedirに追加したら出来ましたから。
- fire--
- ベストアンサー率49% (146/293)
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 で試してみましたが、問題ないですね。 こういう時に、意外とあるのは、思い込みでつづりが違っているのを見逃していたなんて事です。 残念ながら、これ以上は思いつきませんね。
お礼
fireさん ありがとうございました。 つづり間違いはなかったのですが、maenet1972さんに いただいたご回答で解決しました。 お礼が遅れてしまって済みませんでした。
- chie65536
- ベストアンサー率41% (2512/6032)
「C:のカレントフォルダ」は、貴方が予想しているフォルダとは違うフォルダを指しています。
補足
ご回答ありがとうございます。 質問の内容が誤表記になってしまっていました。 すみません。 現在、 $filename= "c:/common/init.ini"; と記述しており、 Cドライブのcommonフォルダの下にinit.iniを おいてあるのですがFalseが戻ってきてしまっています・・。 ただ、その後いろいろいじってみると、 file_existsの戻り値を無視し、 $fp = fopen($filename, "r"); を記述してみると、正しくオープンされ、 ファイルの内容は取得できているのですが・・。 if(!$fp)でファイルのオープンチェックを行っているので、 ファイルがなければここでエラーになるのですが、 file_exists関数が正しく動作しないのが気になっています。
- fire--
- ベストアンサー率49% (146/293)
c:の後に、/ はなしでしょうか? だとしたら、PHPを動かしている所からの相対パスで見ていると 思いますよ。 あと、2重投稿になっているようなので、もうひとつは削除するほうが良いですね。
補足
ありがとうございます。 chie65536への回答にも書かせていただきました通りの現象が 起こってしまっています・・。 アドバイスをお願いいたします。 >あと、2重投稿になっているようなので、もうひとつは削除するほうが良いですね。 ご指摘ありがとうございます。修正いたします。
お礼
大変遅くなってしまい申し訳ありませんでした。 maenet1972さん なるほど、open_basedir外はだめなんですね。 これですっきりしました! ありがとうございました。