开发者社区> 问答> 正文

PHP的主流框架和CMS采用绝对路径而不是相对路径,为什么?

按理说,相对路径遍历的目录比绝对路径要少呀。 比如../admin/明显要比c:/wamp/www/cms/templates/admin/遍历的目录少。

情境:使用include(_once),require(_once)时。

注: 此处所指的绝对路径是指服务器使用的是文件的物理路径(也称为根相对路径),无论是使用"__DIR__"还是一个变量。 此处所指的相对路径是目录相对路径(./xxx.php),不是文件名的相对路径(xxx.php)。

可能性1:使用相对路径会解析成绝对路径再执行。

结果:手册上表示相对路径不会被解析成绝对路径@jackeychen

可能性2:include_path()对效率会有影响。

结果:手册上说明除了类似于xxx.php的文件名之外,只要是路径,就不会再使用includepath()(但是@zhaoyi指出php5.2之前相对路径还是会受includepath影响,Laruence在10年的一片文章也提到相对路径受到include_path的影响(其实他指的是文件名的相对目录))

展开
收起
落地花开啦 2016-06-15 10:28:12 2542 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    其实主要的问题是程序设计的问题:
    dirA/a1.php, a2.php
    其中a1.php包含了a2.php,代码如下:
    `include 'a2.php';
    dirB/b.php`
    b.php里面要包含dirA/a1.php,然后a1.php被载入,然后他包含a2.php的代码就出错了。

    所以这些框架就只能用绝对路径来了。

    2019-07-17 19:38:48
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载