PHP包含文件
在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。
include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。
include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:
require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require
向执行流(从一条语句前进到下一条语句,直至运行到程序的结尾处)引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。
包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。
语法
include "filename";
或
require "filename";
实例
假设有一个名为header.php 的文件 ,如下
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $name="PHP中文网"; $php="PHP"; ?>
使用 include 包含header.php 文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <body> <?php include "header.php"; echo "欢迎来到"."$name"."学习"."$php"; ?> </body> </html>
程序运行结果:
欢迎来到PHP中文网学习PHP
实例
有一个名为 "menu.php" 的标准菜单文件:
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo '<a href="/index.asp">首页</a> - <a href="/html/index.asp">HTML 教程</a> - <a href="/css/index.asp">CSS 教程</a> - <a href="/js/index.asp">JavaScript 教程</a> - <a href="/php/index.asp">PHP 教程</a>'; ?>
使用 "require" 包含 "menu.php" 文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <body> <h1>欢迎来到PHP中文网</h1> <?php require "header.php"; ?> </body> </html>
程序运行结果:
欢迎来到PHP中文网
首页 - HTML 教程 - CSS 教程 - JavaScript 教程 - PHP 教程
include VS require
include 与 require 有一个巨大的差异:如果用 include 语句引用某个文件并且 PHP 无法找到这个文件,脚本会继续执行。
如果我们使用 require 语句完成相同的案例,echo 语句不会继续执行,因为在 require 语句返回严重错误之后脚本就会终止执行
实例
用include 包含不存在的文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <body> <h1>欢迎来到PHP中文网</h1> <?php include "noFile.php"; echo "我在学"."$name"; ?> </body> </html>
程序运行结果:
欢迎来到PHP中文网
我在学
用require 包含不存在的文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <body> <h1>欢迎来到PHP中文网</h1> <?php require "noFile.php"; echo "我在学"."$name"; ?> </body> </html>
程序运行结果:
欢迎来到PHP中文网
注意:在使用 include 和require 包含一个不存在的文件是,可能会出现警告信息,这是你可以设置php.ini 的报错级别
打开php.ini
Ctel+F搜索 error_reporting
找到error_reporting = E_ALL
将error_reporting = E_ALL替换成error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_WARNING
重启Apache