php中include包含页面路径问题解决方法

2020-02-11  阅读 136 次

用php的include包含文件时经常不注意就会发现严重的问题,例如:网站根目录下有index.php和文件夹A和B,A文件夹里有1.php,B文件夹里有2.php

<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在include中使用"/"并不是我们所想象的网站根目录,它代表的是当前的目录,因此还是不行。

既然不能用相对的,那我们可以改用绝对路径的方式,realpath("./") 用于获取当前网站根目录的绝对路径,如:c:\wamp\www\网站名称\

因此我们可以将include("../B/2.php");改成include(realpath("./")."B/2.php");

这样的话,不管页面在哪一级目录,我都可以去引用,不用再担心路径问题了!

总结:

realpath("./") 用于获取当前网站根目录的绝对路径

完美使用绝对路径调用方法include(realpath("./")."你的路径/***.php");

或者include(./你的路径/***.php");


本文地址:https://5devip.com/post/25.html
温馨提示:文章内容系作者个人观点,不代表雅爱笔记对观点赞同或支持。
版权声明:本文为转载文章,来源于 点击这里 ,版权归原作者所有,欢迎分享本文,转载请保留出处!

评论已关闭!