文章詳情頁
PHP腳本的10個技巧(3)
瀏覽:6日期:2024-01-21 11:12:20
包含文件 如果你目前著手的Web站點開發(fā)項目規(guī)模較大,那你對代碼重用必定深有體會,比方說,不管是HTML還是PHP代碼塊,只要項目足夠大,比如有1000個Web頁,你即便是一年只修改一次包含版權信息的頁腳也會讓你痛不欲生。 而PHP可以通過一些函數(shù)幫助你重用代碼,你要具體用到的函數(shù)依賴于你打算重用的內(nèi)容。 主要的函數(shù)是: * include() 和 include_once() * require() 和require_once() include()函數(shù)包含給定的文件,比如: include('/home/me/myfile'); 包含文件中的任何代碼都將在include() 所在的代碼頁的變量范圍之內(nèi)執(zhí)行。你可以包含服務器上的靜態(tài)文件或者包含在其他服務器上的目標文件,方法是組合使用include()和fopen()。 include_once()函數(shù)和include()函數(shù)功能類似,只是該函數(shù)會檢查被包含文件內(nèi)的代碼是否已經(jīng)被目前的腳本所包含過。如果代碼已經(jīng)被腳本所包含,該函數(shù)就不再包含相應的文件了。 require()函數(shù)用給定文件的內(nèi)容取代自身。這一替換過程發(fā)生在PHP引擎編譯你的代碼而不是執(zhí)行代碼階段,這可和include()不一樣,后者首先被計算再加到文擋中。require()函數(shù)多用于靜態(tài)元素,而include()函數(shù)則主要用于動態(tài)元素。和include_once()類似,require_once()函數(shù)會檢查給定代碼是否早已經(jīng)插入到了文擋內(nèi),如果這樣,給定代碼就不會被再次插入文檔。 我建議你最好對諸如版權、靜態(tài)文本和其他不含變量的元素這類信息采用require函數(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ù)庫或類似的內(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> 你肯定會問:“那么,被included或者被required的文件都來自哪里呢?”答案很簡單:“你的系統(tǒng)。”不過,有時,有些代碼會包含了諸如帶有用戶名和密碼的數(shù)據(jù)庫連接函數(shù)之類的安全信息,在這樣的情況下,顯而易見,你肯定不希望這些東西也成為文檔的一部分弄得全世界都知道。 你可以把包含文件(included或者required)放在系統(tǒng)的任何地方,只要用戶所能用到的PHP可以訪問這些文件即可。你還可以給這些文件以任何你希望給出的文件擴展名,或者不設擴展名。 使用include()和require()函數(shù)可以讓Web站點上普遍存在或者經(jīng)常變動的元素變得更加容易處理。
標簽:
PHP
上一條:PHP腳本的10個技巧(1)下一條:PHP腳本的10個技巧(4)
排行榜