首頁  >  文章  >  後端開發  >  php中關於include包含頁面路徑問題解決方法

php中關於include包含頁面路徑問題解決方法

黄舟
黄舟原創
2017-06-25 10:56:472024瀏覽


剛開始使用phpinclude包含檔案時並沒有發現什麼問題,
慢慢的到後來發現了一個很嚴重的問題,例如:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn