器)
由于每當(dāng)用戶對動態(tài)鏈接實現(xiàn)點擊操作之際, 均會朝著服務(wù)器發(fā)出針對數(shù)據(jù)進行查詢的請求, 鑒于此對于一個訪問量有可能達到百萬甚至千萬級別的網(wǎng)站來講, 這毫無疑問是給服務(wù)器造成了極大的負(fù)擔(dān), 因而將動態(tài)數(shù)據(jù)轉(zhuǎn)變?yōu)殪o態(tài) html 頁面便成為了節(jié)約人力以及物力的首要選擇。之前不曾有過對應(yīng)的經(jīng)驗, 起初之時, 覺著這項技術(shù)極為神秘, 然而, 看過一些實例之后, 發(fā)覺并非那般復(fù)雜只是網(wǎng)上的資料并非特別詳盡, 歷經(jīng)一個上午加中下午 的試驗, 最終將該做的任務(wù)給完成了, 緊接著就是一些心得以及一個簡易的例子。希望大蝦們不要笑話我哈普通情形下, 運用php去轉(zhuǎn)變輸出html頁面存在兩種方式, 引用大蝦所撰寫的文章如下:第一種利用模板。現(xiàn)如今, PHP的模板已然是數(shù)量眾多了, 存在功能強大的那種, 同時還有簡單易用的這類等等。它們當(dāng)中的每一種模板, 均有著一個能夠獲取輸出內(nèi)容的函數(shù)。而我們生成靜態(tài)頁面所使用的方法, 借助的正是這個函數(shù)。采用這個方法具備的優(yōu)點在于, 代碼相對顯得比較清晰, 并且可讀性良好。這里我用做例子說明如何生成靜態(tài)頁:assign(title,HelloWorld!); $content$t-fetch(templates/index.htm); //這里的fetch()就是獲取輸出內(nèi)容的函數(shù),現(xiàn)在$content變量里面,就是要顯示的內(nèi)容了 $fpfopen(archives/2005/05/19/0001.html,w); fwrite($fp,$content); fclose($fp); ?第二種方法利用ob系列的函數(shù)。這里所運用到的函數(shù)主要涵蓋了, 當(dāng)中意味著開啟瀏覽器緩沖區(qū), 在開啟緩沖之后, 全部來源于PHP程序卻并非文件頭的信息一概不會被發(fā)送出去, 反過來會被保存于內(nèi)部緩沖區(qū)里。一直到你采用了。而在此處極為關(guān)鍵的一個函數(shù)便是, 這個函數(shù)所具備的作用是獲取緩沖區(qū)的內(nèi)容。這等同于上面所說的那個fetch(), 二者道理是一樣的。我選用的第2種方法也就是用ob系列的函數(shù)剛剛開始看這個之際, 有那么一點兒不太清楚, 隨后才清楚知曉, ob所代表的意思, 也就是輸出緩存。當(dāng)你著手準(zhǔn)備進行輸出之際, 所有的數(shù)據(jù)均被保存在ob的里面, 在服務(wù)器對php完成解析之后, 把所有打算輸出到客戶端的html代碼, 都放置存于ob里面, 要是我們想要輸出html靜態(tài)頁面, 只要將緩存取出來, 寫入到一個html頁面便可。所以原理其實是很簡單的這里運用到了幾個函數(shù), 因為我剛開始學(xué)習(xí)php, 好多函數(shù)我都不清楚, 所以在此也做一番說明, 期望能夠?qū)Υ蠹矣兴Α?):開始“捕捉”緩存也就是從這里開始打開瀏覽器的緩存():關(guān)閉瀏覽器緩存():讀取緩存內(nèi)容fopen(”文件路徑”,”打開模式”), 此函數(shù)用于打開文件, 該函數(shù)的打開模式存在好幾種, 接下來說明幾種主要的模式:“r”只讀方式打開將文件指針指向文件頭?!皉”讀寫方式打開將文件指針指向文件頭。以“w”寫入方式進行打開操作, 把文件指針朝著文件頭的方向去定位, 還要將文件的大小截斷為零。要是文件并不存在, 那就嘗試去創(chuàng)建這一文件。以“w”的讀寫方式去打開, 把文件指針定位到文件頭那兒, 并且將文件的大小截斷使得其變?yōu)榱?。要是文件不存在的? 那就試著去創(chuàng)建它。(”文件名稱”,”寫入內(nèi)容”)寫入文件()關(guān)閉文件因為我所要轉(zhuǎn)換的html文件數(shù)量頗多, 或許可達幾百個, 所以在此處無法靜態(tài)地指定fopen的路徑設(shè)定值, 大家能夠設(shè)置一個路徑變量, 其中能夠留存用戶傳遞過來的id等相關(guān)信息, 以便于進行html文件的命名工作, 下面是我將上次php讀取xml數(shù)據(jù)與之相結(jié)合的一個簡易示例。; if($name) echo$xml_data. ; } functionendElement($parser_instance,$element_name)//結(jié)束標(biāo)簽事件的函數(shù) { global$name,$position; $namefalse; $positionfalse; } //xml數(shù)據(jù)讀取完畢 $htmlname$id..html;//$id可以自己定義這里代表用戶傳來的id $htmlpatharchives/.$htmlname;//設(shè)置路徑變量 $contentob_get_contents();//取得php頁面輸出的全部內(nèi)容 $fpfopen($htmlpath,w); fwrite($fp,$content); fclose($fp); ?剛才所講的這些內(nèi)容, 便是向大家去陳列的, 借助php來生成靜態(tài)html頁面的方式, 而且是兩種方式哦, 期望大伙能夠心生喜愛之情。