讓我首先演示我的文件結構。
爲什麼兩級PHP只包含當前目錄下的工作?
/www/
myfile.php
anotherC.php
a/
b.php
c.php
內myfile.php
的代碼是:
<?php
include_once("a/b.php");
?>
內b.php
的代碼是:
<?php
include_once("c.php");
?>
內
c.php
最後:
<?php
echo "hello i'm C.php";
?>
所以,當我打電話www/myfile.php
我得到的輸出:
hello i'm C.php
這些作品的罰款。但是,讓我改變b.php
到
<?php
include_once("../anotherC.php"); //or include_once("./c.php"); (it won't work too)
?>
現在,當我打電話www/myfile.php
,我得到錯誤:
Warning: include_once(../anotherC.php): failed to open stream: No such file or directory in /home/hasib/Desktop/www/a/b.php on line 2 Warning: include_once(): Failed opening '../anotherC.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/hasib/Desktop/www/a/b.php on line 2
現在我的問題是,爲什麼在include_once("c.php");
工作完美?
什麼是您的include_path設置爲? –
我的推薦:使用絕對路徑,從文檔根開始('_ _ SERVER ['DOCUMENT_ROOT']')。好處是:你可以避免頭痛;您可以移動文件而不必關心更改實際代碼中的路徑;如果您刪除中間文件,您仍然可以訪問最後一個文件。等等... – aleation
@AlexHowansky,我包括路徑是:在/ usr /共享/ PHP:在/ usr /共享/梨 –