欢迎来到天天文库
浏览记录
ID:27599401
大小:52.50 KB
页数:6页
时间:2018-12-05
《php的包含文件函数require和include路径总结》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、PHP的包含文件函数require和include路径总结1绝对路径、相对路径和未确定路径相对路径相对路径指以.开头的路径,例如./a/a.php(相对当前目录)../common,inc.php(相对上级目录),绝对路径绝对路径是以/开头或者windows下的C:/类似的盘符开头的路径,全路径不用任何参考路径就可以唯一确定文件的最终地址。例如/apache/wwwroot/site/a/a.phpc:/wwwroot/site/a/a.php未确定路径凡是不以.或者/开头、也不是windows下盘符:/开头的路径,例如a/a.phpcommon.i
2、nc.php,开始以为这也是相对路径,但在php的include/require包含机制中,这种类型的路径跟以.开头的相对路径处理是完全不同的。require’./a.php’和require’a.php’是不同的!下面分析这三种类型包含路径的处理方式:首先记住一个结论:如果包含路径为相对路径或者绝对径,则不会到include_path(php.ini中定义的include_path环境变量,或者在程序中使用set_include_path(...)设置)中去测试环境说明注意:下面的讨论和结论基于这样的环境:假设A=http://www.xxx.co
3、m/app/test/a.php,再次强调下面的讨论是针对直接访问A的情况。2.相对路径:相对路径需要一个参考目录才能确定文件的最终路径,在包含解析中,不管包含嵌套多少层,这个参考目录是程序执行入口文件所在目录。示例1A中定义require’•/b/b.php’;//则B=[SITE]/app/test/b/b.phpB中定义require’./c.php’;//则C=[SITE]/app/test/c.php不是[SITE]/app/test/b/c.php示例2A中定义require’•/b/b.php’;//则B=[SITE]/app/test
4、/b/b.phpB中定义require’••/c.php’;//贝1JC=[SITE]/app/c.php不是[SITE]/app/test/c.php示例3A中定义require’../b.php’;//则B=[SITE]/app/b.phpB中定义require’../c.php’;//则C=[SITE]/app/c.php不是[SITE]/c.php示例4:A中定义require’./b.php’;//则B=[SITE]/app/b.phpB中定义require’./c/c.php’;//则C=[SITE]/app/test/c/c.php不是
5、[SITE]/app/c/c.php示例5A中定义require’../inc/b.php’;//则B=[SITE]/app/inc/b.phpB中定义require’,/c/c.php’;//则C还是=[SITE]/app/test/c/c.php不是[SITE]/a.pp/inA中定义requ=[SITE]/app/inc/b.phpB中定义requirc/c/c.php示例6ire’../inc/b.php’://贝UBe’./c.php’;//贝ljC=[SITE]/app/test/c.php不是[SITE]/app/inc/c.php2.
6、绝对路径绝对路径的比较简单,不容易混淆出错,require
7、inclue的就是对应磁盘中的文件。require’/wwwroot/xxx.com/app/test/b.php’;//Linux中require’c:/wwroot/xxx.com/app/test/b.php’;//windows中dirname(_FILE_)计算出来的也是一个绝对路径形式的目录,但是要注意_FILE_是一个Magicconstants,不管在什么时候都等于写这条语句的php文件所在的绝对路径,因此dirname(_FILE_)也总是指向写这条语句的php文件所在的绝
8、对路径,跟这个文件是否被其他文件包含使用没有任何关系。示例1A中定义require’../b.php’://则B=[SITE]/app/b.phpB中定义requiredirname(_FILE__).’/c.php’;//则B=[SITE]/app/c.php示例2A中定义require’.•/inc/b.php’;//则B=[SITE]/app/inc/b.phpB中定义requiredirname(_FILE_)•’/c.php’;//贝!JB=[SITE]/app/inc/c.php始终跟B在同一个目录结论:不管B是被A包含使用,还是直接被访
9、问B如果requiredirname(_FILE__).’/c.php’;//则始终引用到跟B在同一个目录中
此文档下载收益归作者所有