2012-02-25 23 views
4

がここにあります私のコードです:)は(必要ファイルを主張してもfile_exists()にもかかわらず失敗

if (file_exists('config.php')) { 
    require('config.php'); // This is line 38 
} 

何とかエラーを生成する:

Warning: require(config.php) [function.require]: failed to open stream: No such file or directory in /path/name/file.php on line 38

地球上で可能これでどう?

更新:

if (file_exists(getcwd(). '/config.php')) { 
    require(getcwd(). '/config.php'); 
} 
+0

奇妙な。これらの行の前に 'clearstatcache()'を試すことができますか? –

+0

何も影響していないようです。更新された質問を参照してください。 – Mike

+2

代わりに 'is_readable()'はどうですか? file_existsは、実際にこのスクリプトでファイルを読む必要があるため、この場合は特に有用ではありません。それを「銀行の金庫にお金があるの?」との違いと考えてください。そして、「金庫の中のいくつかの金を取ることができますか?」 –

答えて

4

は、インクルードパスを無視してみてください。ディレクトリをインクルードパスに含めるには、そのパスを含めるか、相対パスのファイル名を使用するかを選択する必要があります。

include_pathをphp設定ディレクティブ(php設定ファイルを変更できる場合)で変更するか、に変更しますget_include_pathset_include_pathファイル/プロジェクトごとにベース

元の():PHPのあなたの最初の行にset_include_path('.'. PATH_SEPARATOR . get_include_path());(または共通の設定ファイル内)。

出典:

+0

あなたとEd Healの説明をありがとう。これは起こっていたことです。 – Mike

4

PHP includerequireが同じように動作し、パス(include)を含む使用:以下作業を行います。したがって、このパスを使用してファイルを検索し、正しく設定していない場合は、現在のディレクトリを検索しません。

get include pathを使用してこの値を確認してください。

5

絶対パスを試してください。 dirname(__FILE__)を使用してください。

if (file_exists('config.php')) { 
    require('./config.php'); // This is line 38 
} 

それはあなたが不足している動作するかどうか:

require(dirname(__FILE__) . '/config.php'); 
関連する問題