PHP中include和require絕對路徑、相對路徑問題


在寫PHP程序時,經常要用到include或require包含其他文件,但是各文件里包含的文件多了之后,就會產生路徑問題。

如下目錄:

<web>(網站根目錄)
 ├<A>文件夾
 │ │
 │ └1.php
 ├<B>文件夾
 │ │
 │ └2.php
 └index.php

 

現在根目錄下的index.php要包含A文件夾內的1.php文件,則用include "./A/1.php"即可

而1文件夾內的1.php又包含了B文件夾內的2.php,則1.php內寫上include "../B/2.PHP"即可

可是要知道,當index.php包含了1.php之后,編譯是在index.php里進行的,也就是index.php所包含文件里的include都是相對於index.php的,那么1.php被包含進index.php里了,那么就要相對於index.php尋找2.php了。而上面說了,1.php里寫的是include "../B/2.php",現在編譯文件已經相對於網站根目錄了(即相對於index.php),"../"則意味着還要再返回上一級目錄尋找,那么怎么會找得到。

 

在網上也尋找過一些方法,最好的辦法還是都采用絕對路徑方法較妥。可以定義一個單入口文件,將要包含的文件包含進來,定義一個常量define("__ROOT__",dirname(__FILE__));,那么在寫后面的文件過程中,只需要采用絕對方式,加上__ROOT__就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM