2009-06-11 3 views
0

私の状況を使用します。私は、私は多くの場所で使用するクラスを持っているので、私は、ディレクトリツリーで高いそれを置く:は、ローカルファイルに

/www/libs/classA/classA.php 

それは使用していますコンフィグレーションファイルはconfig.iniという同じディレクトリにあり、コンストラクタでローカルに参照します。しかし、別のディレクトリにあるスクリプトからインクルードすると、呼び出し元のスクリプトがあるディレクトリからconfigファイルをロードしようとします。インクルードされたファイルがあるディレクトリを調べる方法はありますか?理想的には、スクリプトを別のディレクトリに移動して、それに何も変更しないでください。

答えて

4

ファイルの読み込み/読み込み時に絶対パスを使用する必要があります。そして、あなたは__FILE__ constantdirname functionとその絶対パスを取得することができます。

dirname(__FILE__).'/config.ini' 

これは、現在実行されるスクリプトファイルがあるのと同じディレクトリにあるconfig.iniファイルの5はあなたの絶対パスますので、そのコードが実行されたとき。 classA.phpスクリプトファイルでは、/www/libs/classA/config.iniとなります。

0

引数にパス情報がない場合は、現在のファイルのディレクトリからファイルをインクルードする必要があります。 include( 'file2.php');しかし、もしあなたが './file2.php'を持っていても)、それは最初にインクルードされた/実行されたスクリプトのディレクトリに相対的になります。

私はdirname(____ FILE ____)...メソッドが好きですが、特定のファイルセットが常に同じディレクトリに配置されることを想定している場合、直接ファイルインクルードは結合を促進します。

関連する問題