3

次のファイルパスの一部を変数としてどのように置き換えますか?

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

directory2 を変数 $dir2 に置き換えたいとします。次のように変数を挿入するだけでは機能しませんか?

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

ありがとう。

4

4 に答える 4

4

基本的な php 構文: で引用された文字列は'変数を補間しません。"代わりに -quoted 文字列を使用します。

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

または文字列連結を使用します。

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/' . $dir2 . '/directory3/file.php';
于 2012-03-09T15:11:09.777 に答える
2

Use"は変数を解析します。

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

また、依存する代わりに、 or (>= 5.3) の$_SERVER['DOCUMENT_ROOT']ようなことをしてルートディレクトリを定義する必要があります。diranme(__FILE__)__DIR__

于 2012-03-09T15:16:01.687 に答える
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";
于 2012-03-09T15:14:52.647 に答える
1

一重引用符は変数の置換を防ぎます。二重引用符を使用します。

require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
于 2012-03-09T15:11:56.570 に答える