我正在尝试使用$ _SERVER ['DOCUMENT_ROOT']变量包含文件。到目前为止,我试图包含的每个文件都抛出了一个文件未找到的错误。我以为我只是把目录弄错了,所以我试着包含当前运行的脚本。我希望它能以递归方式包含在内,直到它耗尽堆栈并摔倒。
echo( 'document root = ' . $_SERVER['DOCUMENT_ROOT'] . '<br>' );
echo( 'script name = ' . $_SERVER['SCRIPT_NAME'] . '<br>' );
$szServerPath = $_SERVER['DOCUMENT_ROOT'];
$szIncludePath = $szServerPath . $_SERVER['SCRIPT_NAME'];
echo( "including = " . $szIncludePath );
include( $szIncludePath );
这导致以下输出:
document root = /var/httpd/htdocs
script name = /CSRC/Damflask/Main/Articles/index.php
including = /var/httpd/htdocs/CSRC/Damflask/Main/Articles/index.php
Warning: include_once(/var/httpd/htdocs/CSRC/Damflask/Main/Articles/index.php) [function.include]: failed to open stream: No such file or directory in /home/www/glmorriL/CSRC/Damflask/Main/Articles/index.php on line 33
看起来它仍然无法找到该文件。我包含的每个其他文件都显示相同的错误消息。为什么这不起作用?
编辑:似乎差异是由于“别名”。 http://php.net/manual/en/reserved.variables.server.php(参见杰米2年前的评论)。 没有等效路径吗?看起来DOCUMENT_ROOT对我来说完全没用。谢谢, ģ
答案 0 :(得分:2)
您可以从错误消息中看到您的文件路径应为:
/home/www/glmorriL/CSRC/Damflask/Main/Articles/index.php
显然/var/httpd/htdocs/...
找不到它。
请尝试使用__FILE__
魔术常量。