【问题标题】:$_SERVER["DOCUMENT_ROOT"] is blank$_SERVER["DOCUMENT_ROOT"] 为空白
【发布时间】:2013-06-01 19:44:19
【问题描述】:

刚发现document_root是空的。任何替代方案或想法如何解决它?

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

【问题讨论】:

    标签: php


    【解决方案1】:

    你有一个语法错误,你的echo应该在php标签内,并添加一个semiclumn ;

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

    【讨论】:

    • 虽然最好使用分号,但这实际上并不是语法错误。如果它是唯一的行,则它是有效的。回声部分肯定是一个错误:)
    • @Jes 这就是我想说的:)
    【解决方案2】:

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

    DocumentRoot /absolute/path/to/website/
    

    只需将 PHP 修改为当前目录的相对路径,您可能会更轻松。使用:

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

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

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

    【讨论】:

      【解决方案3】:

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

      这在您可能在根目录中有 index.php 并且您可能在 /inc/init.php 中以这种方式设置根路径的代码的情况下很有用。

      我不认为它们对这种技术有任何不利之处,并且当您可能有类似 cron.php(通过 cron 作业运行的东西)之类的东西也需要访问 init.php 中的东西时,它很有用。因此,在这种情况下,您只需要在这两个文件中都包含 inc/init.php。我觉得它更干。

      【讨论】:

        猜你喜欢
        • 2013-08-12
        • 2011-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        相关资源
        最近更新 更多