PHP腳本的10個(gè)技巧(3)
發(fā)表時(shí)間:2024-05-22 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]包含文件 如果你目前著手的Web站點(diǎn)開(kāi)發(fā)項(xiàng)目規(guī)模較大,那你對(duì)代碼重用必定深有體會(huì),比方說(shuō),不管是HTML還是PHP代碼塊,只要項(xiàng)目足夠大,比如有1000個(gè)Web頁(yè),你即便是一年只修改一次包含版權(quán)信息的頁(yè)腳也會(huì)讓你痛不欲生。 而PHP可以通過(guò)一些函數(shù)幫助你重用代碼,你要具體用到的函數(shù)依賴(lài)于你打算重用...
包含文件
如果你目前著手的Web站點(diǎn)開(kāi)發(fā)項(xiàng)目規(guī)模較大,那你對(duì)代碼重用必定深有體會(huì),比方說(shuō),不管是HTML還是PHP代碼塊,只要項(xiàng)目足夠大,比如有1000個(gè)Web頁(yè),你即便是一年只修改一次包含版權(quán)信息的頁(yè)腳也會(huì)讓你痛不欲生。
而PHP可以通過(guò)一些函數(shù)幫助你重用代碼,你要具體用到的函數(shù)依賴(lài)于你打算重用的內(nèi)容。
主要的函數(shù)是:
* include() 和 include_once()
* require() 和require_once()
include()函數(shù)包含給定的文件,比如:
include('/home/me/myfile');
包含文件中的任何代碼都將在include() 所在的代碼頁(yè)的變量范圍之內(nèi)執(zhí)行。你可以包含服務(wù)器上的靜態(tài)文件或者包含在其他服務(wù)器上的目標(biāo)文件,方法是組合使用include()和fopen()。
include_once()函數(shù)和include()函數(shù)功能類(lèi)似,只是該函數(shù)會(huì)檢查被包含文件內(nèi)的代碼是否已經(jīng)被目前的腳本所包含過(guò)。如果代碼已經(jīng)被腳本所包含,該函數(shù)就不再包含相應(yīng)的文件了。
require()函數(shù)用給定文件的內(nèi)容取代自身。這一替換過(guò)程發(fā)生在PHP引擎編譯你的代碼而不是執(zhí)行代碼階段,這可和include()不一樣,后者首先被計(jì)算再加到文擋中。require()函數(shù)多用于靜態(tài)元素,而include()函數(shù)則主要用于動(dòng)態(tài)元素。和include_once()類(lèi)似,require_once()函數(shù)會(huì)檢查給定代碼是否早已經(jīng)插入到了文擋內(nèi),如果這樣,給定代碼就不會(huì)被再次插入文檔。
我建議你最好對(duì)諸如版權(quán)、靜態(tài)文本和其他不含變量的元素這類(lèi)信息采用require函數(shù),那些依賴(lài)其他腳本來(lái)實(shí)現(xiàn)自己內(nèi)容的元素也最好采用require函數(shù),例如:
<HTML>
<HEAD><TITLE>Something</TITLE></HEAD>
<BODY>
[a lot of content]
<?
// insert copyright
require('/home/me/mycopyright');
?>
</BODY>
</HTML>
另一方面,我經(jīng)常用include()函數(shù)把函數(shù)庫(kù)或類(lèi)似的內(nèi)容放到腳本之外:
<?
// get my function library
include('/home/me/myfunctions');
// do PHP things with my functions ?>
<HTML>
<HEAD><TITLE>Something</TITLE></HEAD>
<BODY>
[a lot of content]
</BODY>
</HTML>
你肯定會(huì)問(wèn):“那么,被included或者被required的文件都來(lái)自哪里呢?”答案很簡(jiǎn)單:“你的系統(tǒng)!辈贿^(guò),有時(shí),有些代碼會(huì)包含了諸如帶有用戶(hù)名和密碼的數(shù)據(jù)庫(kù)連接函數(shù)之類(lèi)的安全信息,在這樣的情況下,顯而易見(jiàn),你肯定不希望這些東西也成為文檔的一部分弄得全世界都知道。
你可以把包含文件(included或者required)放在系統(tǒng)的任何地方,只要用戶(hù)所能用到的PHP可以訪問(wèn)這些文件即可。你還可以給這些文件以任何你希望給出的文件擴(kuò)展名,或者不設(shè)擴(kuò)展名。
使用include()和require()函數(shù)可以讓W(xué)eb站點(diǎn)上普遍存在或者經(jīng)常變動(dòng)的元素變得更加容易處理。