文件包含相当于将另一个文件的代码全部复制到另一个文件中,然后执行。包含文件很有用,如果您需要在网站的多张页面上引用相同的 PHP、HTML 或文本的话。比如说我们在浏览csdn很多页面中,基本都是看到下面的内容,为了不要每次都要写这个代码,我们就可以使用文件包含

0x01 文件包含四个语句

  1. include
  2. require
  3. include_once
  4. require_once

0x02 每个语句的语法

include:位置任意,当PHP脚本执行到include指定引入的文件时,才将它包含并尝试执行,当第二次包含到相同文件时,PHP还是会重新解释一次,所以include的执行效率相对而言比较低
head.php代码

<?phpecho '<p align=\"center\"><p align=\"center\"><font size=\"2\">这是首部</font></p></p>';
?>

test.php

<?phpheader('content-type:text/html;charset=utf-8');echo '这是test文件';echo '<br>';include('./head.php'); echo '<br>';include('./head.php');
?>


require:一般放在最前,PHP执行前就会先读入require指定引入的文件,包含并尝试执行引入的脚本文件,当第二次包含到相同文件时,PHP不会重新解释一次,相对而言,效率较高
test.php

<?phpheader('content-type:text/html;charset=utf-8');echo '这是test文件';echo '<br>';require('./head.php'); echo '<br>';require('./head.php');
?>


远行结果和include一样

require_once / include_once:分别与require / include作用相同,不同的是他们在执行到时会先检查目标内容是不是在之前已经导入过,如果导入过了,那么便不会再次重复引入其同样的内容。
test.php

<?phpheader('content-type:text/html;charset=utf-8');echo '这是test文件';echo '<br>';require_once('./head.php');    echo '<br>';require_once('./head.php');
?>


head.php只包含了一次

0x03 相互区别

include和require:include有返回值,而require没有返回值。include在加载文件失败时,会生成一个警告,但在错误发生后脚本继续执行。require在加载失败时会生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本停止执行
test.php包含head2.php,这个文件我没创建

<?phpheader('content-type:text/html;charset=utf-8');echo '<br>';include('./head2.php');  echo '<br>';echo '这是test文件';
?>


使用require

<?phpheader('content-type:text/html;charset=utf-8');echo '<br>';require('./head2.php');  echo '<br>';echo '这是test文件';
?>


include和include_once:include载入的文件不会判断是否重复,只要有include语句,就会载入一次(即使可能出现重复载入)。而include_once载入文件时会有内部判断机制判断前面代码是否已经载入过。

require和require_once:同include和include_once的区别相同。

php的文件包含总结 include require include_once require_once相关推荐

  1. 文件包含(include require)

    文件上传 eval函数 GET 首先在根目录创建一个get.php文件,然后写入一句话木马 然后在火狐浏览器URL里进行请求 GET请求头在URL输入  cmd=system("ipconf ...

  2. php文件通常包含和一些,php函数导入与文件包含:include() 和 require() 语句的区别...

    在PHP脚本中想使用文件中定义的函数,就需要使用include().include_once().require()和 require_once() 中的一个函数,将函数库文件载入脚本程序中.上一章节 ...

  3. 【C/C++】头文件包含之#include的2种用法区别

    在C/C++工程中,常会碰到头文件包含的使用,#include <>和#include " "两者之间的区别,简而言之如下: 1. #include <> ...

  4. RFI远程文件包含的漏洞

    RFI(Remote File Inclusion) 远程文件包含漏洞,即服务器通过PHP的特性(函数)去包含任意文件时, 由于要包含的这个文件来源过滤不严格,从而可以去包含一个恶意文件,攻击者就可以 ...

  5. 文件包含漏洞原理/利用方式/应对方案

    原理 用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行 触发点/检测 文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数 include() require() include ...

  6. 【web安全】——文件包含漏洞

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:一切为了她​​​​​​​ 座右铭:不要让时代的悲哀成为你的悲哀 专研方向:网络安全,数据结构 每日emo:可后来,除了梦以外的地方,我再 ...

  7. 文件包含漏洞(RFI)

    1文件包含漏洞简介 include  require  include_once   require_once RFI综述 RFI是Remote File Inclusion的英文缩写,直译过来就是远 ...

  8. php伪协议语法,php文件包含漏洞(input与filter)

    php://input php://input可以读取没有处理过的POST数据.相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置.php:/ ...

  9. 文件包含getshell

    简介 开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含. allow_url_fopen = On(是否允许打开远程 ...

最新文章

  1. Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
  2. Struts2的文件目录
  3. Docker容器间Link单向通信
  4. Swoole使用TP5.1框架
  5. local_irq_save和 local_irq_disable
  6. quartus状态机生成_生成器作为(快速失败)状态机
  7. 行上下移动_这要是在我家,我是不会把上下铺这样设计的,看着特别,打扫困难...
  8. springboot实现拦截器
  9. Linux su和sudo命令的区别,并获得root权限
  10. 递增的整数序列链表的插入_程序员:数据结构——链表List、ArrayList、LinkedList...
  11. paypal php txn id,php 接入 paypal 支付
  12. 蓝桥杯 基础练习 矩阵乘法
  13. 《红周刊》独家对话芒格:你可以随自己喜欢一辈子不理性,那必然承受糟糕结果
  14. 什么是LED屏/ThinkPadX200/X200S/X301/T400/T500等那些是LED屏?
  15. 网易蜗牛读书与微信读书竞品分析
  16. linux gt240驱动下载,NV显卡Linux驱动195.36.08版发布
  17. 一级域名二级域名区别
  18. tumblr_如何制作私人Tumblr博客
  19. [编译链接装载系列]之聊聊目标文件与ELF格式
  20. 网易中国创业家大赛倒计时,2017年8月报名结束

热门文章

  1. iframe关于滚动条的去除和保留
  2. bzoj2287【POJ Challenge】消失之物 缺一01背包
  3. LoadRunner
  4. bzoj4709 [Jsoi2011]柠檬
  5. ZooKeeper的原理(转)
  6. [基础]PeopleSoft中的作业和调度作业集合定义
  7. PHP通过PDO连接Microsoft Access数据库
  8. 学习教材《构建之法》遇到的问题及思路
  9. [慢查优化]联表查询注意谁是驱动表 你搞不清楚谁join谁更好时请放手让mysql自行判定...
  10. 【css】CSS中折叠margin的问题