关于PHP包含文件的方法

Posted 程序设计实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PHP包含文件的方法相关的知识,希望对你有一定的参考价值。

Begin

今天陆陆续续在重新写一些后台程序,用到了一些共用的php文件,所以顺便学习了一下几种包含文件方式

  1. include

    最常用的包含文件方法,如果遇到错误会显示warning,但是不会影响下面脚本的执行

  2. require

    比include方法严格,如果遇到错误,会显示错误并终止下方脚本的执行

  3. 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文件包含函数

php 文件包含函数

php 判断是不是包含

文件包含CTF题目