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


$_SERVER['DOCUMENT_ROOT'] path not work,hence create error

我使用文档根来提供不起作用的绝对路径。如果i为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']的文件,它们用"/"显示目录路径,但我需要"'"。我怎样才能使脚本可行。

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

在我看来,一种更健壮的方法是使用目录名(_FILE_)定义应用程序的根。这将使你的应用程序更独立于配置,更"即插即用",这似乎适合图书馆收藏。

我还鼓励您使用常量DIRECTORY_SEPARATOR,而不是在内部路径中对"'""/"进行硬编码,因为这更易于跨平台移植。

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

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

您可能需要另一个DIRECTORY_SEPARATOR,这取决于$docroot的最终用途。

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