由于服务器设置,无法在PHP中获得正确的路径


Unable to get correct path in PHP due to server settings

我不是服务器方面的专家,我的一个朋友想使用我写的一些PHP脚本,但是他的服务器有问题,我无法找到如何解决这个问题。

基本上问题是在生成文件的路径。

在我的脚本中,我使用以下变量来获取路径:

$path = "/template/"; // path to the template folder
$baseURL = $_SERVER['DOCUMENT_ROOT'].$path;

然后我包括我的页面,例如:

include($baseURL."scripts/functions.php");

在我的服务器上,这工作得很好,当我试图回显baseURL参数时,我得到这个:

/data/web/virtuals/104571/virtual/www/template/

然而,在我朋友的服务器上,它只是抛出"PHP Fatal error: Call to undefined function" - because I checked and the functions.php is not being loaded,

当我尝试在我朋友的服务器上回显baseURL时,我什么也没有得到。

所以我试着查看phpinfo(),有趣的是,我根本没有找到DOCUMENT_ROOT,路径很奇怪,PHP错误显示:

PHP Fatal error: Call to undefined function convertT() in H:'webspace'hostings'kocher.es'hosting'www'meteotemplate'index.php on line 14

因为我真的不了解服务器,所以我不知道这意味着什么,为什么它有H:/驱动器在那里,更重要的是,如何解决这个....

phpinfo()显示如下:http://kocher.es/meteotemplate/

如果有人知道如何解决这个问题,我将非常感激,谢谢。

try __DIR__

的例子:

$basePath = __DIR__;
$templatePath = $basePath."/template/"; // path to the template folder
include($templatePath."/scripts/functions.php");

__DIR__将返回文件基目录,它在不同的文件中是不同的,这意味着你必须小心何时调用

您可以尝试使用dirname(), pathinfo()和realpath()来确定基本路径,而不是使用$_SERVER['DOCUMENT_ROOT']

请在apache的httpd.conf文件中添加文档根路径

尝试_SERVER("CONTEXT_DOCUMENT_ROOT")