首頁  >  文章  >  php教程  >  通用PHP動態產生靜態HTML網頁的程式碼

通用PHP動態產生靜態HTML網頁的程式碼

高洛峰
高洛峰原創
2016-12-21 11:35:131256瀏覽

我們知道,PHP讀取MYSQL動態顯示,在訪問量大的情況下,會有很多效能問題,如果租用別人的虛擬主機,則會因為CPU消耗過多而被限制CPU,導致網頁無法存取。我在這裡給出一個PHP動態產生HTML的方法,可以大幅降低伺服器CPU負載。

  首先設定.htaccess文件,將動態呼叫的參數轉換為靜態的HTML的URL位址,例如將在post目錄下的文件,轉發到根目錄的wp-post.php檔案中,加入的語句類似: 

RewriteRule ^post/([a-z0-9-]+.html)$ wp-post.php?$1$2 

  接著修改wp-post.php文件,在文件的開頭加入以下PHP程式碼: 

ob_start(); 
$qstring = isset($_SERVER[%26quot;QUERY_STRING%26quot;]) ? $_SERVER[%26quot;QUERY_STRING%26quot;] : %26quot;%26quot;; 
define(%26quot;HTML_FILE%26quot;, $_SERVER['DOCUMENT_ROOT'].%26quot;/post/%26quot;.$qstring); 

if (file_exists(HTML_FILE)) 
{ 
$lcft = filemtime(HTML_FILE); 
if (($lcft + 3600) %26gt; time()) //判断上次生成HTML文件是否超过1小时,若没有才直接输出文件内容 
{ 
echo(file_get_contents(HTML_FILE)); 
exit(0); 
} 
}

define(%26quot;HTMLMETA%26quot;,%26quot;%26lt;!-- this is a real static html file created at %26quot;.date(%26quot;Y-m-d H:i:s%26quot;).%26quot; --%26gt;%26quot;); 
$buffer = ob_get_flush(); 
$fp = fopen(HTML_FILE, %26quot;w%26quot;); 
if ($fp) 
{ 
fwrite($fp, $buffer.HTMLMETA); 
fclose($fp); 
}

之後是現有的PHP的程式碼,然後在目前程式碼的最後面加上如下的PHP程式碼: 

rrreee
  好了,然後查看你的靜態HTML頁面,如果頁面尾部出現了註解行,說明已經成功的創建了靜態HTML檔。

  這個方法的一個應用就是我先前寫的那個%26ldquo;WordPress年度博客統計插件%26rdquo;,這個統計插件由於查詢十多次數據庫,很多人訪問的時候會有很大性能問題,使用我介紹的這種動態產生HTML技術後,一天就查詢一次,產生一次統計排行,完美解決了查詢資料庫的效能問題。


更多通用PHP動態產生靜態HTML網頁的程式碼相關文章請關注PHP中文網!


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn