关于PHP包含文件的方法
2017-03-21 22:04
232 查看
Begin
今天陆陆续续在重新写一些后台程序,用到了一些共用的PHP文件,所以顺便学习了一下几种包含文件方式
include
最常用的包含文件方法,如果遇到错误会显示warning,但是不会影响下面脚本的执行
require
比include方法严格,如果遇到错误,会显示错误并终止下方脚本的执行
require_once
同require,但是会检查该php文件是否已经被引用过,如果引用过了,就不会再引用,这个方法很好用,在一些需要反复包含的文件里面用这个方法可以防止重复定义的错误。
还有一个关于文件定位的问题,简单的网页不会产生,但是在重重包含的项目里会有这样的困扰,假如/a.php包含了/php/b.php,然后/php/b.php这个文件里又要包含/c.php,正常情况下在/php/b.php中用一下代码是不会出错的:
include "../c.php";
然而,PHP坑爹的地方就在于,/a.php包含了/php/b.php后,/php/b.php里面的include "../c.php";语句就出错了,因为被/a.php包含之后相当于/php/b.php也位于/中了
解决方法是在/php/b.php文件里,include语句改为:
dirname(__FILE__)."../c.php";
dirname(__FILE__)的作用是无论/php/b.php被誰包含了,include语句里都有以/php/b.php所在的路径为准,不会改变原有的路径
今天陆陆续续在重新写一些后台程序,用到了一些共用的PHP文件,所以顺便学习了一下几种包含文件方式
include
最常用的包含文件方法,如果遇到错误会显示warning,但是不会影响下面脚本的执行
require
比include方法严格,如果遇到错误,会显示错误并终止下方脚本的执行
require_once
同require,但是会检查该php文件是否已经被引用过,如果引用过了,就不会再引用,这个方法很好用,在一些需要反复包含的文件里面用这个方法可以防止重复定义的错误。
还有一个关于文件定位的问题,简单的网页不会产生,但是在重重包含的项目里会有这样的困扰,假如/a.php包含了/php/b.php,然后/php/b.php这个文件里又要包含/c.php,正常情况下在/php/b.php中用一下代码是不会出错的:
include "../c.php";
然而,PHP坑爹的地方就在于,/a.php包含了/php/b.php后,/php/b.php里面的include "../c.php";语句就出错了,因为被/a.php包含之后相当于/php/b.php也位于/中了
解决方法是在/php/b.php文件里,include语句改为:
dirname(__FILE__)."../c.php";
dirname(__FILE__)的作用是无论/php/b.php被誰包含了,include语句里都有以/php/b.php所在的路径为准,不会改变原有的路径
相关文章推荐
- 关于PHP中的文件包含方法
- PHP文件包含漏洞原理分析和利用方法
- php中关于普通表单多文件上传的处理方法
- 关于PHP文件的自动运行方法分析
- 关于centOs下Apache不解析php文件问题的解决方法
- WindowsXP搜索PHP、XML等文件内的包含文字的设置方法
- 关于include_once,require_once包含文件失败的解决方法
- PHP中4个包含文件方法的差异
- 关于win10 php环境配置后运行php文件出现HTTP 错误 401.3 - Unauthorized的解决方法
- php中关于普通表单多文件上传的处理方法
- PHP文件包含漏洞原理分析和利用方法
- 解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
- 关于在Android中一个XML文件包含另外一个XML的方法
- 关于如何根据需求查找php项目文件的方法
- PHP文件包含漏洞原理分析和利用方法
- PHP中4个包含文件方法的差异
- PHP文件包含漏洞原理分析和利用方法
- 解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
- PHP 关于include()和require()方法加载文件的区别
- 包含对操作文件及访问的SD卡一些方法和关于bitmap压缩