我使用文档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']
显示带有"/"
的目录路径但我需要"\"
。
我怎样才能使脚本可行。
答案 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__))
向后退一步。