剛開始使用php的include包含檔案時並沒有發現什麼問題,
慢慢的到後來發現了一個很嚴重的問題,例如:
<web>(网站根目录) ├<A>文件夹 │ │ │ └1.php ├<B>文件夹 │ │ │ └2.php └index.php
在1.php中透過include("../B/2.php");來引入B目錄下的2.php檔案
在index.php中透過include("A/1.php");來引入A目錄下的1.php檔案
運行出來當然會出現問題,找不到. ./B/2.php檔案
靜下心來好好分析一下,index.php中引用了A目錄下的1.php文件,這時候
1.php被編譯到index.php中執行,也就是相當於1.php同index.php一樣位於網站根目錄下
但是在1.php別忘記了一斷程式碼include("../B/2.php") ;
"../"意味著什麼?上一級目錄,現在1.php已經在根目錄下了,這時候再上一級,那就已經
找不到2.php了,所以問題就出現在此。
那麼如何解決能?很多人會想到include("/B/2.php"),這樣不就好了,同樣不行
php不同於我們的jsp,在include中使用"/"並不是我們所想像的網站根目錄,它代表的的
當前的目錄,因此還是不行。
那是不是沒有方法可以解決了?當然有的
既然不能用相對的,那我們可以改用絕對路徑的方式。
realpath("./") 用來取得目前網站根目錄的絕對路徑,如:c:\wamp\www\網站名稱\
因此我們可以交include("../B/2. php");改成include(realpath("./")."B/2.php");
這樣的話,不管頁面在哪一級目錄,我都可以去引用,不用再擔心路徑問題了!
以上是php中關於include包含頁面路徑問題解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!