亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

談PHP生成靜態頁面

2024-09-04 11:50:07
字體:
來源:轉載
供稿:網友

一、引 言

在速度上,靜態頁面要比動態頁面的比方php快很多,這是毫無疑問的,但是由于靜態頁面的靈活性較差,如果不借助數據庫或其他的設備保存相關信息的話,整體的管理上比較繁瑣,比方修改編輯.比方閱讀權限限制等,但是,對應一些我們經常頻頻使用的文件,比方說,開發的新聞發布系統,我們不希望很多用戶都讀取數據庫才顯示結果,這樣一方面消耗了服務器的資源,另一方面占去了瀏覽者大量可貴的響應時間,所有,有了"靜態頁面話"的做法,當前很多網站都采用這種技術,一般都是由管理后臺控制,或者生成html直接顯示,或者xhtml用css控制顯示,或者生成xml用xslt顯示,這些技術都不是難的,在這里我就淺顯的說說生成html的方法.

二、預備知識 

模板技術:

[PHP] 模板引擎Smarty深入淺出介紹
[PHP] PHP模板引擎SMARTY

緩存技術:   

有些信息比方經常不變的,但是還是能變的信息放在緩存中以加快顯示速度,這是很有價值的,所謂的緩存,通俗的理解就是一些保存在服務器端的共用信息.它是于服務器同生死的,我們在保存緩存的時候可以指定下次更新的時間的判斷,比方要在5分鐘更新一次,可以記錄上次更新的時間,和當前時間比較,如果大于 5 分鐘 ,讀取數據庫,更新換成,否則直接讀取緩存數據,當然,緩存需要客戶端用戶激活的,只需一次.

ob_start()函數:打開輸出緩沖區.
    函數格式 void ob_start(void)
    說明:當緩沖區激活時,所有來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩沖區。為了輸出緩沖區的內容,可以使用ob_end_flush()或flush()輸出緩沖區的內容。

Flush:刷新緩沖區的內容,輸出。
    函數格式:flush()
    說明:這個函數經常使用,效率很高。

ob_get_contents :返回內部緩沖區的內容。
    函數格式:string ob_get_contents(void)
    說明:這個函數會返回當前緩沖區中的內容,如果輸出緩沖區沒有激活,則返回 FALSE.

ob_get_length:返回內部緩沖區的長度。
    函數格式:int ob_get_length(void)
    說明:這個函數會返回當前緩沖區中的長度;和ob_get_contents一樣,如果輸出緩沖區沒有激活,則返回 FALSE.

ob_end_clean:刪除內部緩沖區的內容,并且關閉內部緩沖區
    函數格式:void ob_end_clean(void)
    說明:這個函數不會輸出內部緩沖區的內容而是把它刪除

ob_end_flush:發送內部緩沖區的內容到瀏覽器,并且關閉輸出緩沖區
    函數格式:void ob_end_flush(void)
    說明:這個函數發送輸出緩沖區的內容(如果有的話)

ob_implicit_flush:打開或關閉絕對刷新
    函數格式:void ob_implicit_flush ([int flag])
    說明:默認為關閉緩沖區,打開絕對輸出后,每個腳本輸出都直接發送到瀏覽器,不再需要調用 flush()    

文件寫入:   

int fwrite ( resource handle, string string [, int length] )
fwrite() 把 string 的內容寫入 文件指針 handle 處。 如果指定了 length,當寫入了 length 個字節或者寫完了 string 以后,寫入就會停止,視乎先碰到哪種情況。
fwrite() 返回寫入的字符數,出現錯誤時則返回 FALSE 。
相關參考官方網站: 文件參考

三、解決方案

思路:開啟 ob_start緩沖,當已經調出數據的時候獲取 ob_get_contents,然后生成靜態頁,ob_end_clean清除緩沖.ok,就這么來,來看一個例子(php+mysql的結合):

創建數據庫:

CREATE TABLE `bihtml` (
  `id` int(11) NOT NULL auto_increment,
  `szdtitle` varchar(16) NOT NULL,
  `szdcontent` text NOT NULL,
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM;

獲取當前的ID,并導入模板:

ob_start();
$id=_POST['id']
if(!isset($id)&&is_integer($id))
{
 @$db=new mysqli('localhost','root','admin','bihtml');
 $result=$db->fetch_one_array("select  * from szd_bi where id='$id'");
   if(!empty($result))
   { 
   $tmp->assign(array(
    "Szdtitle",htmlspecialchars($result['titles']),
    "Szdcontent",$result['titles']));
   }
 $tpl->display('default_1.tpl');
 $this_my_f= ob_get_contents(); //此處關鍵
 ob_end_clean();
 $filename = "$id.html";
 if(tohtmlfile_cjjer($filename,$this_my_f))
 echo "生成成功 $filename";
 else
 echo "生成識別";
 }
}

//把生成文件的過程寫出函數
function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)
{
 if (is_file ($file_cjjer_name)){
  @unlink ($file_cjjer_name);
 }
$cjjer_handle = fopen ($file_cjjer_name,"w");
 if (!is_writable ($file_cjjer_name)){
  return false;
 }
 if (!fwrite ($cjjer_handle,$file_cjjer_content)){
  return false;
 }
fclose ($cjjer_handle); //關閉指針
return $file_cjjer_name;
}

四、說明事項

1: 一般建議管理員添加數據的時候就生成靜態頁面,可以考慮記錄生成的文件名次和路徑.

2: php主要是    ob_starts()和 ob_get_contents,生成靜態頁面的時候很有用,當然也可以考慮調出數據庫直接替換模板里面的變量也是可以的.

3: 主要的模板使用smarty,phplib都是可以的,smarty使用比較簡易.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产噜噜噜噜噜久久久久久久久| 欧美日韩国产黄| 亚洲欧美另类人妖| 成人xxxxx| 欧美第一黄色网| 欧美成人黑人xx视频免费观看| 欧美日本国产在线| 国模极品一区二区三区| 国产精品成人一区| 福利微拍一区二区| 国产免费久久av| 久久久久久综合网天天| 91精品国产成人www| 国产午夜精品免费一区二区三区| 都市激情亚洲色图| 欧美国产视频一区二区| 国产日韩精品入口| 欧美激情videoshd| 久久视频国产精品免费视频在线| 国产精品一区av| 一本一本久久a久久精品牛牛影视| 亚洲性视频网站| 国产91成人video| 国产日韩av高清| 亚洲欧美三级伦理| 中文字幕综合一区| 日韩中文字幕在线视频播放| www.日韩av.com| 亚洲女人天堂成人av在线| 久久精品国产2020观看福利| www.美女亚洲精品| 亚洲欧美国产一本综合首页| 91嫩草在线视频| 55夜色66夜色国产精品视频| 粉嫩av一区二区三区免费野| 精品偷拍一区二区三区在线看| 国产精品久久久久久搜索| 亚洲美女久久久| 欧美人与性动交a欧美精品| 国产99在线|中文| 日韩三级成人av网| 欧美一级黄色网| 国产成人激情小视频| 91视频国产精品| 日本国产欧美一区二区三区| 日韩成人中文电影| 亚洲黄在线观看| 国产精品久久久久久久久久| 主播福利视频一区| 欧美电影免费在线观看| 91精品国产高清| 国产伊人精品在线| 综合国产在线视频| 国产精品入口夜色视频大尺度| 成人伊人精品色xxxx视频| 日本不卡视频在线播放| 欧美午夜激情小视频| 欧美午夜www高清视频| 麻豆乱码国产一区二区三区| 日韩精品高清视频| 性色av一区二区三区免费| 欧美一级片一区| 98午夜经典影视| 中文字幕日韩欧美在线| 国产成人精品免高潮在线观看| 国产一区二区香蕉| 国内久久久精品| 亚洲丝袜在线视频| 亚洲精品色婷婷福利天堂| 国产色综合天天综合网| 国产69精品久久久久久| 亚洲精选在线观看| 大伊人狠狠躁夜夜躁av一区| 欧美另类69精品久久久久9999| 亚洲精品日韩丝袜精品| 久久久91精品| 欧美xxxwww| 亚洲精品国产综合区久久久久久久| 欧洲成人在线视频| 在线看日韩av| 国内精品一区二区三区四区| 人妖精品videosex性欧美| 青青在线视频一区二区三区| 欧美黄色小视频| 欧美精品激情blacked18| 欧美老女人性生活| 欧美片一区二区三区| 永久免费看mv网站入口亚洲| 久久久精品国产一区二区| 国产精品第2页| 国产一区二区黄| 视频一区视频二区国产精品| 亚洲午夜精品久久久久久性色| 中文精品99久久国产香蕉| 亚洲跨种族黑人xxx| 欧美激情视频网站| 久久精品亚洲94久久精品| 亚洲国产精品悠悠久久琪琪| 久久夜色精品国产欧美乱| 日韩精品视频在线| 成人国产精品色哟哟| 97在线精品国自产拍中文| 欧美精品videossex性护士| 欧美日韩精品二区| 欧美精品免费播放| 最好看的2019年中文视频| 欧美丝袜美女中出在线| 日韩中文有码在线视频| 亚洲色图美腿丝袜| 日韩电影大片中文字幕| 日韩成人网免费视频| 亚洲精品之草原avav久久| 中文字幕视频一区二区在线有码| 中文字幕日韩综合av| 国产欧美在线视频| 亚洲第一视频网站| 国产视频在线一区二区| 久久九九有精品国产23| 国产成人午夜视频网址| 久久亚洲国产精品成人av秋霞| 中文字幕日本欧美| 国产欧美日韩专区发布| 日韩精品在线看| 青青在线视频一区二区三区| 亚洲欧美在线免费观看| 国产专区精品视频| 亚州av一区二区| 久久久久女教师免费一区| 国产精品久久久久久久久久新婚| 亚洲欧美日韩第一区| 95av在线视频| 日韩在线观看免费全集电视剧网站| 日韩欧亚中文在线| 中文字幕亚洲情99在线| 日韩电影大全免费观看2023年上| 91人成网站www| 日韩av在线免费观看| 亚洲欧美日韩在线高清直播| 国产欧美精品一区二区三区-老狼| 68精品国产免费久久久久久婷婷| 亚洲大胆人体视频| 国产色婷婷国产综合在线理论片a| 欧美精品videosex牲欧美| 国产精品日本精品| 久久av红桃一区二区小说| 2019中文字幕在线免费观看| 亚洲精品免费网站| 91精品国产高清久久久久久91| 久久全国免费视频| 2019中文字幕免费视频| 国产精品久久久久久五月尺| 91久久国产综合久久91精品网站| 伊人伊成久久人综合网小说| 91久久国产综合久久91精品网站| 久久深夜福利免费观看| 在线激情影院一区| 亚洲一区二区三区在线视频| 亚洲性av在线| 国产91露脸中文字幕在线| 色综合久久天天综线观看| 国产欧美日韩免费| 亚洲影影院av| 亚洲国产高清自拍| 久久久视频在线|