談PHP生成靜態(tài)頁面
Jun 08, 2016 pm 05:33 PM一、引 言
在速度上,靜態(tài)頁面要比動態(tài)頁面的比方php快很多,這是毫無疑問的,但是由于靜態(tài)頁面的靈活性較差,假如不借助數(shù)據(jù)庫或其他的設(shè)備保存相關(guān)信息的話,整體的治理上比較繁瑣,比方修改編輯.比方閱讀權(quán)限限制等,但是,對應(yīng)一些我們經(jīng)常頻頻使用的文件,比方說,開發(fā)的新聞發(fā)布系統(tǒng),我們不希望很多用戶都讀取數(shù)據(jù)庫才顯示結(jié)果,這樣一方面消耗了服務(wù)器的資源,另一方面占去了瀏覽者大量可貴的響應(yīng)時間,所有,有了"靜態(tài)頁面話"的做法,當(dāng)前很多網(wǎng)站都采用這種技術(shù),一般都是由治理后臺控制,或者生成html直接顯示,或者xhtml用css控制顯示,或者生成xml用xslt顯示,這些技術(shù)都不是難的,在這里我就淺顯的說說生成html的方法.
二、預(yù)備知識
模板技術(shù):
緩存技術(shù):
有些信息比方經(jīng)常不變的,但是還是能變的信息放在緩存中以加快顯示速度,這是很有價值的,所謂的緩存,通俗的理解就是一些保存在服務(wù)器端的共用信息.它是于服務(wù)器同生死的,我們在保存緩存的時候可以指定下次更新的時間的判定,比方要在5分鐘更新一次,可以記錄上次更新的時間,和當(dāng)前時間比較,假如大于 5 分鐘 ,讀取數(shù)據(jù)庫,更新?lián)Q成,否則直接讀取緩存數(shù)據(jù),當(dāng)然,緩存需要客戶端用戶激活的,只需一次.
ob_start()函數(shù):打開輸出緩沖區(qū).
函數(shù)格式 void ob_start(void)
說明:當(dāng)緩沖區(qū)激活時,所有來自PHP程序的非文件頭信息均不會發(fā)送,而是保存在內(nèi)部緩沖區(qū)。為了輸出緩沖區(qū)的內(nèi)容,可以使用ob_end_flush()或flush()輸出緩沖區(qū)的內(nèi)容。
Flush:刷新緩沖區(qū)的內(nèi)容,輸出。
函數(shù)格式:flush()
說明:這個函數(shù)經(jīng)常使用,效率很高。
ob_get_contents :返回內(nèi)部緩沖區(qū)的內(nèi)容。
函數(shù)格式:string ob_get_contents(void)
說明:這個函數(shù)會返回當(dāng)前緩沖區(qū)中的內(nèi)容,假如輸出緩沖區(qū)沒有激活,則返回 FALSE.
ob_get_length:返回內(nèi)部緩沖區(qū)的長度。
函數(shù)格式:int ob_get_length(void)
說明:這個函數(shù)會返回當(dāng)前緩沖區(qū)中的長度;和ob_get_contents一樣,假如輸出緩沖區(qū)沒有激活,則返回 FALSE.
ob_end_clean:刪除內(nèi)部緩沖區(qū)的內(nèi)容,并且關(guān)閉內(nèi)部緩沖區(qū)
函數(shù)格式:void ob_end_clean(void)
說明:這個函數(shù)不會輸出內(nèi)部緩沖區(qū)的內(nèi)容而是把它刪除
ob_end_flush:發(fā)送內(nèi)部緩沖區(qū)的內(nèi)容到瀏覽器,并且關(guān)閉輸出緩沖區(qū)
函數(shù)格式:void ob_end_flush(void)
說明:這個函數(shù)發(fā)送輸出緩沖區(qū)的內(nèi)容(假如有的話)
ob_implicit_flush:打開或關(guān)閉絕對刷新
函數(shù)格式:void ob_implicit_flush ([int flag])
說明:默認(rèn)為關(guān)閉緩沖區(qū),打開絕對輸出后,每個腳本輸出都直接發(fā)送到瀏覽器,不再需要調(diào)用 flush()
文件寫入:
int fwrite ( resource handle, string string [, int length] )
fwrite() 把 string 的內(nèi)容寫入 文件指針 handle 處。 假如指定了 length,當(dāng)寫入了 length 個字節(jié)或者寫完了 string 以后,寫入就會停止,視乎先碰到哪種情況。
fwrite() 返回寫入的字符數(shù),出現(xiàn)錯誤時則返回 FALSE 。
相關(guān)參考官方網(wǎng)站: 文件參考
三、解決方案
思路:開啟 ob_start緩沖,當(dāng)已經(jīng)調(diào)出數(shù)據(jù)的時候獲取 ob_get_contents,然后生成靜態(tài)頁,ob_end_clean清除緩沖.ok,就這么來,來看一個例子(php mysql的結(jié)合):
創(chuàng)建數(shù)據(jù)庫:
CREATE TABLE `bihtml` (
`id` int(11) NOT NULL auto_increment,
`szdtitle` varchar(16) NOT NULL,
`szdcontent` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

在java中,void是“空”的意思,即“什么都不返回”,在方法申明的時候表示該方法沒有返回值。?void對應(yīng)著一個包裝類“java.lang.Void”,該Void類是用final修飾的,是一個不可實例化的占位符類,用來保存一個引用代表了Java關(guān)鍵字void的Class對象。

使用Java的String.valueOf()函數(shù)將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串在Java開發(fā)中,當(dāng)我們需要將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串時,一種常見的方法是使用String類的valueOf()函數(shù)。這個函數(shù)可以接受基本數(shù)據(jù)類型的參數(shù),并返回對應(yīng)的字符串表示。在本文中,我們將探討如何使用String.valueOf()函數(shù)進行基本數(shù)據(jù)類型轉(zhuǎn)換,并提供一些代碼示例來

char數(shù)組轉(zhuǎn)string的方法:可以通過賦值來實現(xiàn),使用{char a[]=" abc d\0efg ";string s=a;}語法,讓char數(shù)組對string直接賦值,執(zhí)行代碼即可完成轉(zhuǎn)換。

使用Java的String.replace()函數(shù)替換字符串中的字符(串)在Java中,字符串是不可變的對象,這意味著一旦創(chuàng)建了一個字符串對象,就無法修改它的值。但是,你可能會遇到需要替換字符串中的某些字符或者字符串的情況。這時候,我們可以使用Java的String類中的replace()方法來實現(xiàn)字符串的替換。String類的replace()方法有兩種重

使用Java的String.length()函數(shù)獲取字符串的長度在Java編程中,字符串是一種非常常見的數(shù)據(jù)類型,我們經(jīng)常需要獲取字符串的長度,即字符串中字符的個數(shù)。在Java中,我們可以使用String類的length()函數(shù)來獲取字符串的長度。下面是一個簡單的示例代碼:publicclassStringLengthExample{publ

C中的void是一個特殊的關(guān)鍵字,用來表示空類型,也就是指沒有具體類型的數(shù)據(jù)。在C語言中,void通常用于以下三個方面。函數(shù)返回類型為void在C語言中,函數(shù)可以有不同的返回類型,例如int、float、char等。然而,如果函數(shù)不返回任何值,則可以將返回類型設(shè)為void。這意味著函數(shù)執(zhí)行完畢后,并不返回具體的數(shù)值。例如:voidhelloWorld()

在PHP中,void類型返回值表示函數(shù)不返回任何值,通常用于更新記錄等不需要返回值的操作。聲明void函數(shù)時使用void關(guān)鍵字;調(diào)用void函數(shù)時,不得將結(jié)果分配給變量。實戰(zhàn)案例:void類型返回值可用于更新數(shù)據(jù)庫記錄,無需返回任何信息。

javascript:void(0)是什么意思?解決這個問題的方法有哪些?當(dāng)我們在瀏覽網(wǎng)頁時,有時會遇到一些鏈接點擊后并沒有任何響應(yīng),而在瀏覽器的地址欄中卻顯示為"javascript:void(0)"的情況。這個問題可能會讓一些網(wǎng)頁訪問者感到困惑,因為他們不知道這個字面上看起來像是JavaScript代碼的錯誤信息到底是什么意思。那么,讓我們來一起解開這個
