注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

php: include交叉引用时避免相对路径错误  

2014-05-14 10:57:55|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
备忘一下,小白补基础……唉。记得在很久很久之前备忘过一篇测试

假设文件目录结构是这样 
/root.php
/cfg.ini 
/1/inc.php
/1/cfg.ini

root.php

include("./1/inc.php");


inc.php

include("cfg.ini");


测试最后执行 root.php时调用的是根目录的cfg还是子目录下的cfg。结论是inc里的include()会以root.php作为基准。

------
如果 再多一个 /2/sub.php 也和/root.php 引用 inc.php 的话就会出现无所适从,没办法同时满足两个路径不同的文件调用。
这就是交叉引用存在的问题。

现在才知道这个问题是可以被解决的。就是在 inc.php 的 include里指定当前文件所在的路径作为静态参考。使用 dirname(__FILE__)
参见人家的日志
http://www.metsky.com/archives/323.html

不过这篇日志有个坑...害我调试了好久都发现引用不成功
还是最上面的例子,如果我想sub.php 和root.php 引用的是根目录的 cfg.ini , 
inc.php 应该这样写

include_once(dirname(__FILE__)."/../cfg.ini"); //inc.php无论被什么路径的文件引用,都以inc.php文件所在的路径作为参考

注意的是 include_once(dirname(__FILE__)."/../cfg.ini"); 
dirname(__FILE__) 后面记得要加个 “/” 因为取出路径是不带的.这坑真是......23333333
备忘.毕
  评论这张
 
阅读(707)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018