利用PHP生成靜態(tài)html頁(yè)面的原理
前言
如果每次用戶(hù)點(diǎn)擊動(dòng)態(tài)鏈接的時(shí)候都會(huì)對(duì)服務(wù)器發(fā)送數(shù)據(jù)查詢(xún)的要求,對(duì)于一個(gè)訪(fǎng)問(wèn)量可能達(dá)百萬(wàn)千萬(wàn)級(jí)別的網(wǎng)站來(lái)說(shuō) 這無(wú)疑是服務(wù)器一個(gè)大大的負(fù)擔(dān),所以把動(dòng)態(tài)數(shù)據(jù)轉(zhuǎn)換成靜態(tài)html頁(yè)面就成了節(jié)省人力物力的首選因?yàn)榇饲皼](méi)有相應(yīng)的經(jīng)驗(yàn),所以這篇文章和大家分享利用PHP生成靜態(tài)html頁(yè)面的原理和方法,有需要的可以一起來(lái)看看。
一、思路分析
其實(shí),實(shí)現(xiàn)靜態(tài)頁(yè)面生成功能的原理很簡(jiǎn)單,主要利用幾個(gè)常見(jiàn)的PHP文件操作函數(shù)對(duì)文件進(jìn)行操作,其思路流程如下:

生成靜態(tài)頁(yè)面流程圖
二、功能實(shí)現(xiàn)
設(shè)置example.html為模板文件,然后按照此模板文件生成article-1.html~article-5.html,以此來(lái)做簡(jiǎn)單的演示,代碼如下:
<?php
//將數(shù)據(jù)存入二維數(shù)組
$con=array(array('文章標(biāo)題1','文章內(nèi)容1'),array('文章標(biāo)題2','文章內(nèi)容2'),array('文章標(biāo)題3','文章內(nèi)容3'),array('文章標(biāo)題4','文章內(nèi)容4'),array('文章標(biāo)題5','文章內(nèi)容5'));
foreach($con as $id=>$val){ //循環(huán)生成
$title=$val[0];
$content=$val[1];
$path="article-".($id+1).".html";
//替換example內(nèi)容,并獲取內(nèi)容賦值給$str
$fp=fopen("example.html","r");
$str=fread($fp,filesize("example.html"));
$str=str_replace("{title}",$title,$str);
$str=str_replace("{content}",$content,$str);
fclose($fp);
//新建空白文件,將$str寫(xiě)入
$handle=fopen($path,"w");
fwrite($handle,$str);
fclose($handle);
echo "生成".$path."<br/>";
}
?>
}
注解:
fopen(文件名,打開(kāi)方式),打開(kāi)文件函數(shù),若無(wú)文件,則創(chuàng)建。其返回值為資源型;
fread(文件名,讀取字節(jié)數(shù)),讀取文件內(nèi)容及對(duì)應(yīng)的字節(jié)數(shù);
str_replace(規(guī)定要查找的值,替換被查找值的值,被搜索的字符串),替換函數(shù);
fclose(文件名),關(guān)閉文件;
fwrite(要寫(xiě)入的打開(kāi)文件,要寫(xiě)入打開(kāi)文件的字符串,要寫(xiě)入的最大字節(jié)數(shù))。
三、總結(jié)
原理比較簡(jiǎn)單,作為php初學(xué)者,要把每個(gè)基礎(chǔ)知識(shí)扎實(shí)學(xué)好,你的PHP之路定會(huì)風(fēng)光無(wú)限,以上就是這篇文章的全部?jī)?nèi)容了,希望能對(duì)各位PHP開(kāi)發(fā)者們能有所幫助,如果有疑問(wèn)大家可以留言交流。
- PHP生成HTML靜態(tài)頁(yè)面實(shí)例代碼
- 采用thinkphp自帶方法生成靜態(tài)html文件詳解
- 用PHP生成靜態(tài)HTML速度快類(lèi)庫(kù)
- PHP批量生成靜態(tài)HTML的簡(jiǎn)單原理和方法
- PHP定時(shí)自動(dòng)生成靜態(tài)HTML的實(shí)現(xiàn)代碼
- PHP 動(dòng)態(tài)生成靜態(tài)HTML頁(yè)面示例代碼
- PHP將整個(gè)網(wǎng)站生成HTML純靜態(tài)網(wǎng)頁(yè)的方法總結(jié)
- php將數(shù)據(jù)庫(kù)中所有內(nèi)容生成靜態(tài)html文檔的代碼
- 通用PHP動(dòng)態(tài)生成靜態(tài)HTML網(wǎng)頁(yè)的代碼
- php添加文章時(shí)生成靜態(tài)HTML文章的實(shí)現(xiàn)代碼
相關(guān)文章
PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法
這篇文章主要給大家介紹了關(guān)于PHP內(nèi)部實(shí)現(xiàn)打亂字符串順序函數(shù)str_shuffle的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
PHP垃圾回收機(jī)制引用計(jì)數(shù)器概念分析
php變量存在一個(gè)叫"zval"的變量容器中,"zval"變量容器包括含變量的類(lèi)型和值,還包括額外的兩個(gè)字節(jié)信息,分別是“is_ref”表示變量是否屬于引用,“refcount”指向這個(gè)zval變量容器的變量個(gè)數(shù)2013-06-06
php實(shí)現(xiàn)陽(yáng)歷陰歷互轉(zhuǎn)的方法
這篇文章主要介紹了php實(shí)現(xiàn)陽(yáng)歷陰歷互轉(zhuǎn)的方法,同時(shí)還能獲取干支紀(jì)年,生肖,以及相應(yīng)的陰歷的中文叫法等,感興趣的小伙伴們可以參考一下2015-10-10
使用JSON實(shí)現(xiàn)數(shù)據(jù)的跨域傳輸?shù)膒hp代碼
某網(wǎng)站后臺(tái)用php腳本得到一個(gè)JSON格式的數(shù)據(jù),交給前臺(tái)javascript進(jìn)行處理,使用JSON實(shí)現(xiàn)數(shù)據(jù)的跨域調(diào)用2011-12-12
PHP隨機(jī)數(shù)生成代碼與使用實(shí)例分析
在PHP程序設(shè)計(jì)中,隨機(jī)數(shù)的生成尤為重要。我們需要用隨機(jī)數(shù)在我們的頁(yè)面中展示隨機(jī)記錄(比如圖片、用戶(hù)記錄、文章ID等)。2011-04-04
php操作mongodb封裝類(lèi)與用法實(shí)例
這篇文章主要介紹了php操作mongodb封裝類(lèi)與用法,結(jié)合具體實(shí)例形式分析了php定義的MongoDB操作封裝類(lèi)與相關(guān)的類(lèi)實(shí)例化、查詢(xún)、更新等使用技巧,需要的朋友可以參考下2018-09-09
phpQuery采集網(wǎng)頁(yè)實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了phpQuery采集網(wǎng)頁(yè)實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
PHP實(shí)現(xiàn)判斷二叉樹(shù)是否對(duì)稱(chēng)的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)判斷二叉樹(shù)是否對(duì)稱(chēng)的方法,涉及php遞歸二叉樹(shù)判斷節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
編寫(xiě)漂亮的代碼 - 將后臺(tái)程序與前端程序分開(kāi)
php前后臺(tái)分離技術(shù)2008-04-04

