include,require路径问题

php中require/include 包含相对路径的解决办法


 
在PHP中require,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文件。 


这是因为:
 
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中使用”/”并不是我们所想象的网站根目录,它代表的的
 当前的目录,因此还是不行。
 
既然不能用相对的,那我们可以改用绝对路径的方式。只是在包含文件之前,先包含一个global.php
 文件。这个文件的内容是:
 <?php
 chdir(dirname(__FILE__));
 ?>
 ,它的作用是将当前目录切换到global.php所在的路径。
 将global.php放在根目时录下,在这之后包含的所有文件就会以根目录为基准了。
 
例如,在2.php中引用1.php,则,通过2步:
 


1.require(dirname(__FILE__).‘/../global.php’);//视具体的目录情况,反正是要指回到根目录下的global.php
 
2.require(‘A/1.php’)//从根目录开始定位
 
这样的话,不管页面在哪一级目录,我都可以去引用,不用再担心路径问题了!
 
Tagged: php, 根目录, 相对路径, 绝对路径
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值