2012-04-19 8 views
1

一般的な設定(gitリポジトリ内)と設定プロパティを上書きするローカル設定ファイル(リポジトリでは無視される)を持つ設定ファイルがあります。今ローカルの設定ファイルは、設定ファイルの先頭に含まれていますオプションのPHPでの組み込み

include_once 'local_config.php'; 

しかし、私は、条件付きであることを含めたいと思います:ファイルlocal_config.phpが実際に存在する場合にのみ、それを行うに。 enter link description hereを問題なく実行できますが、最初にファイルが存在するかどうかを確認する必要があります。だから、私はget_include_path()を試したが、パスのリストを返すので、このリストを解析してすべてをチェックする必要があった。

別のオプションは、単にinclude_once()を呼び出して警告を抑制することですが、それはさらに面倒です。 PHPで実際のオプションのインクルードを行う簡単な方法はありますか?

+3

私は単純だと思うかもしれませんが、単純な 'if(file_exists($ path)){'が必要なものです。 – SativaNL

+0

以下の私のコメントを参照してください。get_include_path()は現在のディレクトリ '.'とは何か異なるものを返す可能性があります。その場合は' if(file_exists($ include_path。$ path)){} ' – alexfernandez

答えて

3

使用それほどのようなfile_exists()事前に定義されたPHPの機能:ここ

// Test if the file exists 
if(file_exists('local_config.php')){ 
    // Include the file 
    include('local_config.php'); 
}else{ 
    // Otherwise include the global config 
    include('global_config.php'); 
} 

ドキュメント:http://php.net/manual/en/function.file-exists.php

+1

私はそれが十分だとは思わない。インクルードファイルが現在のディレクトリにあるかどうかを確認するにはどうすればよいですか?おそらく、一般的な設定は、set_include_path()を別のディレクトリに呼び出した別のファイルからインクルードされている可能性があります。その場合は、 'if(file_exists($ include_path。$ path)){} .'を見なければなりません。私のローカルシステムには' include_path'にいくつかの異なるパスがあります。 – alexfernandez

+0

その後、 'foreach'文で各パスをループします。 PHPの 'glob'関数を使って、ディレクトリからファイルをリストすることもできます。これは役に立ちますか? –

+0

それは私が記述したものであり、必死に避けようとしているものです。 – alexfernandez

関連する問題