刚刚发现 document_root 是空的。任何替代方案或想法如何解决它?
echo <?php $HTTP_SERVER_VARS["PATH_TRANSLATED"] ?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/inc/config.php");
include(ROOT_PATH . "/inc/header.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");
?>
你有一个语法错误,你的 echo 应该在 php 标签内,并添加一个 semiclumn;
<?php echo $HTTP_SERVER_VARS["PATH_TRANSLATED"]; ?>
//^echo should be inside php tags ^semicolumn was missed here
$_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';
我更喜欢使用:define('FOO_ROOT', dirname($_SERVER['SCRIPT_FILENAME']))
这在您可能在根目录中有 index.php 并且您可能在 /inc/init.php 中以这种方式设置根路径的代码的情况下很有用。
我不相信它们对这种技术有任何不利之处,并且当您可能有类似 cron.php(通过 cron 作业运行的东西)之类的东西也需要访问 init.php 中的东西时,它很有用。因此,在这种情况下,您只需要在这两个文件中包含 inc/init.php。我觉得它更干。