我在Hostgator 共享主机帐户中使用此$ path,它运行正常:
$path = dirname($_SERVER["DOCUMENT_ROOT"]).'/';
即。此路径为 / home / username / public_html /
以下是我如何使用它的示例:
<?php
$path = dirname($_SERVER["DOCUMENT_ROOT"]).'/';
include($path.'stats.php');
?>
我的问题是此$ path 在我的新Hostgator 转销商帐户中无效。
有谁知道为什么这不适用于转销商托管以及我可以使用哪条路径?
理想情况下,我会使用“if else”,以便在共享和转销商帐户中使用相同的代码。
以下工作如何:
<?php
if(strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT'])===false) {
// for reseller accounts
$path = WHATEVER_THE_RESELLER_PATH_IS;
}
else {
// for shared hosting accounts
$path = dirname($_SERVER["DOCUMENT_ROOT"]).'/';
}
include($path.'stats.php');
?>
我从这里得到了上述“if”:PHP strange DOCUMENT_ROOT。
答案 0 :(得分:0)
dirname(__FILE__);
将指向执行此语句的文件的目录。如果你知道它在哪里,你可以通过这种方式找到你的文档。
答案 1 :(得分:0)
我不会构建依赖于$_SERVER['DOCUMENT_ROOT']
的应用程序,始终与您的Web根目录保持一致。您的应用程序应该与其托管环境松散耦合:他们应该尽可能少地了解它,以便在环境之间移动的问题更少。
例如,WordPress使用ABSPATH
常量来存储WordPress目录的绝对路径:
文件:/example/hosting/env/public_html/blog/wp-config.php
会有代码行:
define('ABSPATH', dirname(__FILE__) . '/');
WordPress知道所有文件相对于保存wp-config.php
的目录的位置,因此构建了相对于该文件路径的所有文件路径。下面的代码行是:
require_once(ABSPATH . 'wp-settings.php');
定义ABSPATH
后,它将用作WordPress其余部分的基本文件路径。