php7中include有相对路径无法打开

2020-09-22 07:30发布

php中如果有相对路径(比如说include"/1.php";)就无法打开,我想问一下怎么解决,要是用绝对地址,那如何读取文档上一个文件目录的文档


1条回答

目前相对路径,可以用

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");这样一来,无论网页页面在哪里一级目录,我也能够 去引入,无需再担忧相对路径情况了!


一周热门 更多>