PHP包含文件
在 PHP 中,您可以在服務(wù)器執(zhí)行 PHP 文件之前在該文件中插入一個(gè)文件的內(nèi)容。
include 和 require 語句用于在執(zhí)行流中插入寫在其他文件中的有用的代碼。
include 和 require 除了處理錯(cuò)誤的方式不同之外,在其他方面都是相同的:
require 生成一個(gè)致命錯(cuò)誤(E_COMPILE_ERROR),在錯(cuò)誤發(fā)生后腳本會(huì)停止執(zhí)行。
include 生成一個(gè)警告(E_WARNING),在錯(cuò)誤發(fā)生后腳本會(huì)繼續(xù)執(zhí)行。
因此,如果您希望繼續(xù)執(zhí)行,并向用戶輸出結(jié)果,即使包含文件已丟失,那么請(qǐng)使用 include。否則,在框架、CMS 或者復(fù)雜的 PHP 應(yīng)用程序編程中,請(qǐng)始終使用 require?
向執(zhí)行流(從一條語句前進(jìn)到下一條語句,直至運(yùn)行到程序的結(jié)尾處)引用關(guān)鍵文件。這有助于提高應(yīng)用程序的安全性和完整性,在某個(gè)關(guān)鍵文件意外丟失的情況下。
包含文件省去了大量的工作。這意味著您可以為所有頁面創(chuàng)建標(biāo)準(zhǔn)頁頭、頁腳或者菜單文件。然后,在頁頭需要更新時(shí),您只需更新這個(gè)頁頭包含文件即可。
語法
?include "filename";
或
require "filename";
實(shí)例
假設(shè)有一個(gè)名為header.php 的文件 ,如下
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $name="PHP中文網(wǎng)"; $php="PHP"; ?>
使用 include 包含header.php 文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文網(wǎng)</title> </head> <body> <?php include "header.php"; echo "歡迎來到"."$name"."學(xué)習(xí)"."$php"; ?> </body> </html>
程序運(yùn)行結(jié)果:
歡迎來到PHP中文網(wǎng)學(xué)習(xí)PHP
實(shí)例
有一個(gè)名為 "menu.php" 的標(biāo)準(zhǔn)菜單文件:
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 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中文網(wǎng)</title> </head> <body> <h1>歡迎來到PHP中文網(wǎng)</h1> <?php require "header.php"; ?> </body> </html>
程序運(yùn)行結(jié)果:
歡迎來到PHP中文網(wǎng)
首頁 - HTML 教程 - CSS 教程 - JavaScript 教程 - PHP 教程
??include? VS? require
include 與 require 有一個(gè)巨大的差異:如果用 include 語句引用某個(gè)文件并且 PHP 無法找到這個(gè)文件,腳本會(huì)繼續(xù)執(zhí)行。
?如果我們使用 require 語句完成相同的案例,echo 語句不會(huì)繼續(xù)執(zhí)行,因?yàn)樵?require 語句返回嚴(yán)重錯(cuò)誤之后腳本就會(huì)終止執(zhí)行
實(shí)例
?用include 包含不存在的文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文網(wǎng)</title> </head> <body> <h1>歡迎來到PHP中文網(wǎng)</h1> <?php include "noFile.php"; echo "我在學(xué)"."$name"; ?> </body> </html>
程序運(yùn)行結(jié)果:
歡迎來到PHP中文網(wǎng)
我在學(xué)
用require 包含不存在的文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文網(wǎng)</title> </head> <body> <h1>歡迎來到PHP中文網(wǎng)</h1> <?php require "noFile.php"; echo "我在學(xué)"."$name"; ?> </body> </html>
程序運(yùn)行結(jié)果:
歡迎來到PHP中文網(wǎng)
注意:在使用 include 和require 包含一個(gè)不存在的文件是,可能會(huì)出現(xiàn)警告信息,這是你可以設(shè)置php.ini 的報(bào)錯(cuò)級(jí)別?
打開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