2012-03-09 5 views
2

ファイルパスの次の代入部分を変数としてどのように取るのですか?PHPの変数require_onceファイルのパス

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/directory2/directory3/file.php'; 

変数$ dir2をsubstitureディレクトリ2に置きたいとします。次のように変数を挿入するだけでは機能しませんか?

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/$dir2/directory3/file.php'; 

ありがとうございます。

答えて

4

基本PHP構文:'で引用された文字列は変数を補間しません。代わりに" -quoted文字列を使用してください:

require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php"; 
             ^---         ^--- 

や使用文字列連結:

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/' . $dir2 . '/directory3/file.php'; 
1

を単一引用符は、変数置換を防ぎます。二重引用符を使用する:

require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php"; 
2

PHPでこれを行うには2通りの方法があります。

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/'.$dir2.'/directory3/file.php'; 

それとも

require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php"; 

違いは、あなたが例のように変数を連結する必要がある「を使用する場合、文字列のために。」または 『使用しているとあなたは既に$ _SERVER [』 DOCUMENT_ROOT」で行ったように。使用している場合]である 『あるいは(アレイと便利)このような何かを行うよう」、あなたは、文字列内の変数を置くことができる』:

require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/{$_SERVER["HTTP_HOST"]}/directory3/file.php"; 
2

使用"は変数を解析します。

"/directory1/$dir2/directory3/file.php" 

、代わりの$_SERVER['DOCUMENT_ROOT']をによって、あなたは、ルートディレクトリを定義するためにdiranme(__FILE__)または__DIR__(> = 5.3)のような何かを行う必要があります。