程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP生成靜態頁面的方法

PHP生成靜態頁面的方法

編輯:關於PHP編程


在PHP網站開發中為了網站推廣和SEO等需要,需要對網站進行全站或局部靜態化處理,PHP生成靜態HTML頁面有多種方法,比如利用PHP模板、緩存等實現頁面靜態化,今天就以PHP實例教程形式討論PHP生成靜態頁面的方法。頁面靜態化的方法,分為兩種,一種是偽靜態,就是url 重寫,一種是你真的靜態化。下面介紹 PHP 中頁面靜態化的方法。
什麼是PHP靜態化
PHP靜態化的簡單理解就是使網站生成頁面以靜態HTML的形式展現在訪客面前,PHP靜態化分純靜態化和偽靜態化,兩者的區別在於PHP生成靜態頁面的處理機制不同。
PHP生成靜態HTML頁面的方法
1、利用PHP模板生成靜態頁面
PHP模板實現靜態化非常方便,比如安裝和使用PHP Smarty實現網站靜態化。
2、使用PHP文件讀寫功能生成靜態頁面
PHP生成靜態頁面實例代碼
1. <?
2. $out1 = "<html><head><title>PHP網站靜態化教程</title></head>
3. <body>歡迎訪問PHP網站開發教程網www.leapsoul.cn,本文主要介紹PHP網站頁面靜態化的方法
4. </body></html>";
5. $fp = fopen("leapsoulcn.html","w");
6. if(!$fp)
7. {
8. echo "System Error";
9. exit();
10. }
11. else {
12. fwrite($fp,$out1);
13. fclose($fp);
14. echo "Success";
15. }
16. ?>
3、使用PHP輸出控制函數(Output Control)生成靜態頁面
輸出控制函數(Output Control)也就是使用和控制緩存來生成靜態HTML頁面,也會使用到PHP文件讀寫函數。
PHP生成靜態頁面實例代碼
1. <?
2. ob_start();
3. echo "<html>".
4. "<head>".
5. "<title>PHP網站靜態化教程</title>".
6. "</head>".
7. "<body>歡迎訪問PHP網站開發教程網www.leapsoul.cn,本文主要介紹PHP網站頁面靜態化的方法</body>".
8. "</html>";
9. 
10. $out1 = ob_get_contents();
11. ob_end_clean();
12. $fp = fopen("leapsoulcn.html","w");
13. if(!$fp)
14. {
15. echo "System Error";
16. exit();
17. }
18. else
19. {
20. fwrite($fp,$out1);
21. fclose($fp);
22. echo "Success";
23. }
24. ?>
我們知道使用PHP進行網站開發,一般執行結果直接輸出到游覽器,為了使用PHP生成靜態頁面,就需要使用輸出控制函數控制緩存區,以便獲取緩存區的內容,然後再輸出到靜態HTML頁面文件中以實現網站靜態化。
PHP生成靜態頁面的思路為:首先開啟緩存,然後輸出了HTML內容(你也可以通過include將HTML內容以文件形式包含進來),之後獲取緩存中的內容,清空緩存後通過PHP文件讀寫函數將緩存內容寫入到靜態HTML頁面文件中。PHP文件讀寫教程?
獲得輸出的緩存內容以生成靜態HTML頁面的過程需要使用三個函數:ob_start()、ob_get_contents()、ob_end_clean()。
知識點:
1、ob_start函數一般主要是用來開啟緩存,注意使用ob_start之前不能有任何輸出,如空格、字符等。
2、ob_get_contents函數主要用來獲取緩存中的內容以字符串形式返回,注意此函數必須在ob_end_clean函數之前調用,否則獲取不到緩存內容。
3、ob_end_clean函數主要是清空緩存中的內容並關閉緩存,成功則返回True,失敗則返回False
PHP輸出控制函數(Output Control)有很多應用,今後將陸續展開。
至此,使用PHP生成靜態HTML頁面以實現網站靜態化的方法就介紹完了,根據實際情況和需求你可以選擇不同的靜態化方法。

 

摘自 v_desigen

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved