PHP包含文件
在 PHP 中,您可以在伺服器執(zhí)行 PHP 檔案之前在該檔案中插入一個檔案的內(nèi)容。
include 和 require 語句用於在執(zhí)行流程中插入寫在其他檔案中的有用的程式碼。
include 和require 除了處理錯誤的方式不同之外,在其他方面都是相同的:
require 產(chǎn)生一個致命錯誤(E_COMPILE_ERROR),在錯誤發(fā)生後腳本會停止執(zhí)行。
include 產(chǎn)生一個警告(E_WARNING),腳本發(fā)生後會繼續(xù)執(zhí)行。
因此,如果您希望繼續(xù)執(zhí)行,並向使用者輸出結(jié)果,即使包含檔案已遺失,那麼請使用 include。否則,在框架、CMS 或複雜的 PHP 應(yīng)用程式程式設(shè)計中,請務(wù)必使用 require?
向執(zhí)行流(從一條語句前進(jìn)到下一語句,直至運行到程式的結(jié)尾)引用關(guān)鍵檔案。這有助於提高應(yīng)用程式的安全性和完整性,在某個關(guān)鍵檔案意外遺失的情況下。
包含文件省去了大量的工作。這意味著您可以為所有頁面建立標(biāo)準(zhǔn)頁頭、頁腳或選單檔案。然後,在頁頭需要更新時,您只需更新這個頁頭包含文件即可。
語法
#?include "filename";
或
require "filename";
實例
##假設(shè)有一個名為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>
程式運行結(jié)果:
#歡迎來到PHP中文網(wǎng)學(xué)習(xí)PHP
實例
有一個名為"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>#程序運行結(jié)果:
歡迎來到PHP中文網(wǎng)首頁- HTML 教學(xué)- CSS 教學(xué)- JavaScript 教學(xué)- PHP 教學(xué)
################################### ##??include? VS? require############include 與require 有一個巨大的差異:如果用include 語句引用某個文件並且PHP 無法找到這個文件,腳本會###繼續(xù)執(zhí)行## #。 ###
?如果我們使用require 語句完成相同的案例,echo 語句不會繼續(xù)執(zhí)行,因為在require 語句傳回嚴(yán)重錯誤之後腳本就會終止執(zhí)行
實例
#?用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>
程式運行結(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>
程式運行結(jié)果:
歡迎來到PHP中文網(wǎng)
注意:在使用include 和require 包含一個不存在的檔案是,可能會出現(xiàn)警告訊息,這是你可以設(shè)定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