$ _SERVER ['DOCUMENT_ROOT']路径不起作用,因此产生错误

时间:2013-02-20 07:08:17

标签: php

我使用文档root来提供无效的绝对路径。 如果我echo $_SERVER['DOCUMENT_ROOT'];此路径变为C:/wamp/www/

显示错误

Warning: include_once(C:/wamp/www//library/includes/header.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\Library Lending management\library\library\book_search_comit.php on line 16

当我像C:\wamp\www\Library Lending management\library\includes\header.php一样完整时,它可以正常工作。

当我使用"/"时,我发现问题"\"会产生问题。我的问题是我有很多文件使用$_SERVER['DOCUMENT_ROOT']显示带有"/"的目录路径但我需要"\"。 我怎样才能使脚本可行。

3 个答案:

答案 0 :(得分:2)

$_SERVER['DOCUMENT_ROOT']在您的服务器配置中定义,因此您可以在那里进行更改。

我认为更强大的方法是使用 dirname(_ FILE _)定义应用程序的根目录。这将使您的应用程序更加独立于配置,并且更加“即插即用”,这似乎适合图书馆馆藏。

我还鼓励您在内部路径中使用常量DIRECTORY_SEPARATOR而不是硬编码"\""/",因为这在整个平台上更具可移植性。

答案 1 :(得分:0)

使用str_replace()更改路径分隔符:

$docroot = str_replace('/', DIRECTORY_SEPARATOR, $_SERVER['DOCUMENT_ROOT']);
include_once($docroot.'header.php'); // etc.

您可能需要另一个DIRECTORY_SEPARATOR,具体取决于$ docroot最终的结果。

答案 2 :(得分:0)

我使用dirname(dirname(__FILE__))它对我有效。 dirname(__FILE__)给出文件的当前位置,dirname(dirname(__FILE__))向后退一步。