2013-04-06 69 views
0

我試圖使用$ _SERVER ['DOCUMENT_ROOT']變量包含文件。到目前爲止,我試圖包含的每個文件都拋出了文件未找到的錯誤。我認爲我只是弄錯了目錄,所以我試圖包含當前正在運行的腳本。我希望它遞歸地包含它自己,直到它耗盡堆棧並翻倒。包含_SERVER ['DOCUMENT_ROOT']。 _SERVER ['SCRIPT_NAME']找不到當前正在運行的腳本

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對我來說完全沒用。

感謝, 摹

回答

2

你可以從你的文件路徑應該是錯誤信息,請參閱:

/home/www/glmorriL/CSRC/Damflask/Main/Articles/index.php 

所以很明顯/var/httpd/htdocs/...不會找到它。

嘗試使用__FILE__魔術常數。

+0

對不起,你能更具體些嗎?我沒有使用'__FILE__'。 '__FILE__'會給我「/ home/www/glmorriL」? – 2013-04-06 16:17:50

+0

在該文檔中打印'__FILE__'會給我: /home/www/glmorriL/CSRC/Damflask/Main/Articles/index.php 使用DOCUMENT_ROOT的要點是它給了我根。我目前正在包含具有相對路徑的文檔。我想使用根路徑。不幸的是,這不會幫助我,因爲它給了我當前文件的完整路徑。 – 2013-04-06 16:23:08

+0

'__DIR__'呢? – 2013-04-06 16:23:54

相關問題