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

php教程评论1.7K views阅读模式

刚开始使用php的include包含文件时并没有发现什么问题,

慢慢的到后来发现了一个很严重的问题,例如:

<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教程网其它相关文章!

企鹅博客
  • 本文由 发表于 2020年8月9日 23:57:54
  • 转载请务必保留本文链接:https://www.qieseo.com/240233.html

发表评论