3

您如何将文件路径的以下和替换部分作为变量?

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

我想用变量 $dir2 替换 directory2。简单地插入变量如下不起作用?

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

谢谢。

4

4 回答 4

4

基本 php 语法:带引号的字符串'不插入变量。请改用带"引号的字符串:

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

在 PHP 中有两种方法可以做到这一点。

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 回答
2

使用"将解析变量。

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

而不是依赖$_SERVER['DOCUMENT_ROOT'],您应该执行类似diranme(__FILE__)or __DIR__(>= 5.3) 的操作来定义根目录。

于 2012-03-09T15:16:01.687 回答
1

单引号防止变量替换。使用双引号:

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