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

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











Java?? void? "?? ??", ? "???? ???? ??"? ?????. ???? ???? ???? ?? ?? ??? ?????. void? ?? ??? "java.lang.Void"? ?????. Void ???? final? ???? Java ??? void? ???? Class ??? ?? ??? ???? ? ???? ?????? ? ?? ?? ??? ??????.

Java? String.valueOf() ??? ???? ?? ??? ??? ???? ?? Java ???? ?? ??? ??? ???? ???? ? ? ???? ??? String ???? valueOf() ??? ???? ????. ? ??? ?? ??? ??? ????? ???? ?? ??? ??? ??? ? ????. ? ????? ?? ??? ?? ??? ?? String.valueOf() ??? ???? ??? ???? ??? ?? ? ?? ?? ??? ?????.

char ??? ???? ???? ??: ??? ?? ??? ? ????. char ??? ???? ?? ?? ???? ????? ??? {char a[]=" abc d\0efg ";string s=a;} ??? ?????. ??? ???? ?????.

Java? String.replace() ??? ???? ???? ??(???) ??? Java?? ???? ?? ?????. ?, ??? ??? ???? ?? ?? ??? ? ????. ??? ????? ?? ??? ???? ??? ?? ??? ??? ? ????. ?? Java? String ???? ?? replacement() ???? ???? ??? ??? ??? ? ????. String ???? replacement() ????? ? ?? ??? ????.

???? ??? ???? Java? String.length() ??? ??????. Java ??????? ???? ???? ??, ? ???? ?? ?? ???? ?? ??? ????. Java??? String ???? length() ??? ???? ???? ??? ?? ? ????. ??? ??? ?? ?????: publicclassStringLengthExample{publ

C?? void? ?? ??? ?? ???? ???? ? ??? ???? ? ???? ?? ??????. C ???? void? ?? ?? ? ?? ???? ?????. ?? ?? ??? void???. C ???? ??? int, float, char ?? ?? ??? ?? ??? ?? ? ????. ??? ??? ?? ?? ???? ?? ?? ?? ??? void? ??? ? ????. ?? ??? ??? ?? ?? ?? ???? ??? ?????. ?: voidhelloWorld()

PHP?? void ??? ???? ??? ?? ?? ???? ???? ????, ????? ???? ???? ?? ??? ????? ?? ??? ?????. void ??? ??? ?? void ???? ?????. void ??? ??? ?? ??? ??? ?????? ? ???. ?? ??: void ?? ?? ?? ???? ??? ???? ?? ?????? ???? ????? ? ????.

javascript:void(0)? ??? ?????? ? ??? ?? ???? ?????? ?? ??? ? ?? ? ???? ?? ????? ?? ???? "javascript:void(0)"? ???? ??? ?? ??? ????. ? ??? ?? ??? JavaScript ???? ??? ?? ???? ??? ????? ??? ??? ?? ? ????? ??? ? ? ????. ?? ?? ?? ????
