php中如果有相对路径(比如说include"/1.php";)就无法打开,我想问一下怎么解决,要是用绝对地址,那如何读取文档上一个文件目录的文档
php中如果有相对路径(比如说include"/1.php";)就无法打开,我想问一下怎么解决,要是用绝对地址,那如何读取文档上一个文件目录的文档
目前相对路径,可以用
include"./1.php";)
上一个相对路径,可以用
include"../1.php";)
一开始采用php的include包括文档时并沒有发现什么情况,
渐渐地的到后面发觉了1个很严重的情况,比如说:
(站点网站根目录)
├文件目录
││
│└1.php
├文件目录
││
│└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");这样一来,无论网页页面在哪里一级目录,我也能够 去引入,无需再担忧相对路径情况了!