$ _SERVER [" DOCUMENT_ROOT"]为空白

时间:2013-06-05 23:00:45

标签: php

刚发现document_root为空。任何替代或想法如何解决它?

echo <?php $HTTP_SERVER_VARS["PATH_TRANSLATED"]  ?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/inc/config.php");
include(ROOT_PATH . "/inc/header.php");
?>

3 个答案:

答案 0 :(得分:2)

你有一个语法错误,你的回声应该在php标签内,并添加一个半列;

<?php echo $HTTP_SERVER_VARS["PATH_TRANSLATED"];  ?>
    //^echo should be inside php tags          ^semicolumn was missed here

答案 1 :(得分:1)

$_SERVER['DocumentRoot']全局取决于您使用的服务器,而不是PHP本身。如果你正在使用Apache,那么只需在你的apache配置文件中添加一个DocumentRoot条目:

DocumentRoot /absolute/path/to/website/

您可以更轻松地将PHP修改为当前目录的相对路径。使用:

require_once __DIR__ . '/inc/config.php';

或者使用从您正在编辑的PHP脚本的文件夹到config.php文件的正确相对路径的一些变体,例如:

require_once __DIR__ . '/../inc/config.php';

答案 2 :(得分:0)

我更喜欢使用:define('FOO_ROOT', dirname($_SERVER['SCRIPT_FILENAME']))

这可能在你可能在root中有index.php然后你可以在/inc/init.php中以这种方式设置根路径的情况下很有用。

我不相信他们对这种技术有任何缺点,如果你有像cron.php(通过cron作业运行的东西)这样的东西也很有用,它也需要访问init.php中的东西。因此,在这种情况下,您只需要在这两个文件中使用inc / init.php。我发现它更干燥。