在PHP中,可在服务器执行PHP文件之前在该文件中插入一个文件的内容。include和require语句用于在执行流中插入写在其他文件中的有用代码。include和require除了处理错误的方式不同之外,在其他方面是相同的:
1.require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
2.include生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
因此,若希望继续执行,并向用户输出结果,即使包含文件已丢失,可使用include;否则,在框架,CMS或复杂的php应用程序编程中,要始终使用require向执行流引用关键文件,这有助于在某个关键文件意外丢失情况下,提高应用程序的完整性和安全性。
语法:
include 'filename'; 或 require 'filename';
实例#1:
假设要一个名为"footer.php"的页头文件,如下:
<?php
date_default_timezone_set('UTC');
echo "<p>Copyright © 2006-" . date("Y") . " W3School.com.cn</p>";
?>
一个引用文件php_include.php:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>欢迎访问我们的首页!</h1>
<p>一段文本。</p>
<p>一段文本。</p>
<?php include 'footer.php'; ?>
</body>
</html>
结果如下:
#实例2:假设在所有页面中引用一个标准菜单文件:
menu.php:
<?php
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>';
?>
网站中所有页面引用该菜单文件,具体做法是使用一个<div>元素,这样今后就可通过CSS设置样式,比如在menu_include.php中做法如下:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h1>欢迎访问我的首页!</h1>
<p>Some text.</p>
<p>Some more text.</p>
</body>
</html>
如下:
#实例3:假设一个定义了一些变量的文件cars.php:
<?php
$color='银色的';
$car='奔驰轿车';
?>
引用该cars.php文件,就可在cars_include.php中调用文件中的变量:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>欢迎访问我的首页!</h1>
<?php
include 'cars.php';
echo "我有一辆$color$car";
?>
</body>
</html>
如下:
下面验证一下include和require的最大区别:
php_include_verify.php:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>欢迎访问我的首页!</h1>
<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
include 'noFileExists.php';
include 'cars.php';
echo "我有一辆$color$car";
?>
</body>
</html>
去除警告函数:ini_set("error_reporting","E_ALL & ~E_NOTICE");
结果可知仍可继续运行:
php_require_verify.php:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>欢迎访问我的首页!</h1>
<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
require 'noFileExists.php';
include 'cars.php';
echo "我有一辆$color$car";
?>
</body>
</html>
结果可知无法继续运行require后面的语句:
参考网址