本文目錄一覽:
- 1、PHP頁面怎麼生成靜態的HTML頁面
- 2、PHP網站如何實現網頁偽靜態或靜態?
- 3、如何用PHP輸出靜態頁面
- 4、誰能說說php生成靜態網頁的應用方式? – PHP進階討論
- 5、php如何生成靜態網頁?
- 6、php靜態頁面怎麼做?詳細點
PHP頁面怎麼生成靜態的HTML頁面
PHP模板實現靜態化非常方便,比如安裝和使用PHP Smarty實現網站靜態化。
在使用Smarty的情況下,也可以實現頁面靜態化。下面先簡單說一下使用Smarty時通常動態讀取的做法。
一般分這幾步:
1、通過URL傳遞一個參數(ID);
2、然後根據此ID查詢數據庫;
3、取得數據後根據需要修改顯示內容;
4、assign需要顯示的數據;
5、display模板文件。
Smarty靜態化過程只需要在上述過程中添加兩個步驟。
第一:在1之前使用 ob_start() 打開緩衝區。
第二:在5之後使用 ob_get_contents() 獲取內存未輸出內容,然後使用fwrite()將內容寫入目標html文件。
根據上述描述,此過程是在網站前台實現的,而內容管理(添加、修改、刪除)通常是在後台進行,為了能有效利用上述過程,可以使用一點小手段,那就是Header()。具體過程是這樣的:在添加、修改程序完成之後,使用Header() 跳到前台讀取,這樣可以實現頁面HTML化,然後在生成html後再跳回後台管理側,而這兩個跳轉過程是不可見的。
PHP網站如何實現網頁偽靜態或靜態?
偽靜態實現方式兩種:
1. web服務器上設置.html或者.htm等後綴的頁面也通過PHP來處理即可,比如Nginx或者Apache,都有這樣的配置文件,設置PHP處理的文件後綴類型,這樣前台請求的htm文件,實際上是PHP代碼
2. 通過設置web服務器的rewrite規則來實現,每個web服務器基本上都有這個功能,看看手冊即可實現
真正的靜態實現:
通過CMS發佈系統,後台直接生成真正的靜態頁面,比如新聞網站的新聞發佈系統,後台錄入內容後,直接生成html的靜態結果頁面給用戶來訪問,PHP有好多開源的CMS發佈系統,你可以下載了研究研究,也可以使用模板引擎smarty來生成靜態頁面。
如何用PHP輸出靜態頁面
用PHP輸出靜態頁面有2種方法
一種是利用模板技術,另一種是用ob系列函數。兩種方法,看起來都差不多,但是實際上,卻是不同的。
第一種:利用模板
目前PHP的模板可以說是很多了,有功能強大的smarty,還有簡單易用的smart template等。
它們每一種模板,都有一個獲取輸出內容的函數。
我們生成靜態頁面的方法,就是利用了這個函數。
用這個方法的優點是,代碼比較清晰,可讀性好。
這裡我用smarty做例子,說明如何生成靜態頁
?php
require(‘smarty/Smarty.class.php’);
$t = new Smarty;
$t-assign(“title”,”Hello World!”);
$content = $t-fetch(“templates/index.htm”);
//這裡的 fetch() 就是獲取輸出內容的函數,現在$content變量裏面,就是要顯示的內容了
$fp = fopen(“archives/2005/05/19/0001.html”, “w”);
fwrite($fp, $content);
fclose($fp);
?
第二種方法:利用ob系列的函數
這裡用到的函數主要是 ob_start(), ob_end_flush(), ob_get_content(),
其中ob_start()是打開瀏覽器緩衝區的意思,
打開緩衝後,所有來自PHP程序的非文件頭信息均不會發送,
而是保存在內部緩衝區,直到你使用了ob_end_flush().
而這裡最重要的一個函數,就是ob_get_contents(),
這個函數的作用是獲取緩衝區的內容,相當於上面的那個fetch(),
道理一樣的。代碼:
?php
ob_start();
echo “Hello World!”;
$content = ob_get_contents();//取得php頁面輸出的全部內容
$fp = fopen(“0001.html”, “w”);
fwrite($fp, $content);
fclose($fp);
?
誰能說說php生成靜態網頁的應用方式? – PHP進階討論
第一種:利用模板。目前PHP的模板可以說是很多了,有功能強大的smarty,還有簡單易用的smarttemplate等。它們每一種模板,都有一個獲取輸出內容的函數。我們生成靜態頁面的方法,就是利用了這個函數。用這個方法的優點是,代碼比較清晰,可讀性好。 第二種方法:利用ob系列的函數。這裡用到的函數主要是 ob_start(), ob_end_flush(), ob_get_content(),其中ob_start()是打開瀏覽器緩衝區的意思,打開緩衝後,所有來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩衝區,直到你使用了ob_end_flush().而這裡最重要的一個函數,就是ob_get_contents(),這個函數的作用是獲取緩衝區的內容,相當於上面的那個fetch(),道理一樣的。 方法三:下面轉貼一個比較通用且好懂的 前言:目前網絡上好多網站的新聞發佈系統都採用了動態服務器技術生成靜態HTML的做法,這樣做的好處是:一是能減輕其服務器的負擔,二是因為生成了HTML靜態頁面,所以其網站被搜索引擎搜索到的機率更大一些。筆者的網站曾經使用PHP這一動態技術來構建新聞發佈系統,其原理也就是應用了PHP生成HTML靜態頁面的技術,相關平台是 Windows XP Sp2+php4.32+mysql,因此,在這裡,想簡單地談一下這種做法的思路。這篇文章適合於對PHP+MYSQL數據庫操作,SQL語句以及網頁設計有點基礎的朋友,如果您是一個從頭開始學的朋友,那麼請先打好基礎吧!到這裡就不用往下看了。如果您都符合上述條件的話,那麼恭喜您,請接着往下看。但是,在具體動手構建之前,您還要做好以下幾點準備工作。 一、 具備本地調試PHP的功能 在WINDOWS XP操作系統下,筆者建議你可以到網上下載一個PHP+MYSQL+APHCHE的服務器套裝,如華軍軟件園,去那裡搜索一下就可以下載到。下載完後默認安裝即可,這樣您就具備了在本地測試PHP的功能了,省去了很多手動配置的麻煩,怎麼樣,簡單吧,OK,這僅僅只是第一步。 二、 構思新聞發佈系統所具備的功能 首頁的新聞發佈往往是通過後台更新的,後台的更新無非是由添加、編輯、刪除數據等基本的功能所實現的。在這裡,你可以使用網頁設計軟件來構建你的想要的後台界面,其功能的實現當然是要用到PHP嘍。這一步建議您先想好新聞發佈系統要有的功能。在這裡,如何用PHP添加、編輯、刪除數據就不再重複,因為重點是如何在這基礎上生成靜態技術。
php如何生成靜態網頁?
靜態頁面加載速度快(什麼是靜態頁面),利於搜索引擎蜘蛛抓取,所以很多朋友都想把動態頁面生成靜態頁面,那麼今天就來介紹下如何用php生成靜態網頁。 思路大致是這樣的:
1.設計一個靜態頁面的模板,需要填充內容的地方用一些符合或者參數代替(不能與其他代碼重複),如下圖(簡圖):
2.用php讀取數據庫里的內容,將需要填充內容的符號用讀取到的內容替換掉。比如模板是上圖,則把{title}替換成網頁標題,將{content}替換成網頁內容。這是可以用php中的preg_replace函數進行替換。
3.將替換後的內容保存為html或者htm文件。比如可以保存為news_1.html,這樣在瀏覽器里就可以訪問這樣的一個靜態網頁了。
通過以上三步就可以用php生成靜態頁面了,以上只是一個簡單的思路,在實際生成靜態頁面的過程中可能會更加複雜,只要用心,多學習php中的函數,多思考就不會有問題難倒你。
php靜態頁面怎麼做?詳細點
確實有點籠統。不過我可以跟樓主大概說一下思路 一般的生成靜態頁面的方法就先製作一個靜態模板,在裏面需要動態改變的東西用特殊的代碼標記,然後再用PHP將標記替換後生成文件進行保存。 比如:body div{:This is the content:}/div /body 這個裏面的{:This is the content:}就是一個特殊的標記。我們設這段代碼在a.html文件中,我們用PHP將他讀入,?php $b=’這裡是內容,可以從數據庫讀取,或者從其他途徑獲得’; $fp=fopen(‘a.html’,’r’); $content=fread($fp,filesize(‘a.html’)); fclose($fp); $content=str_replace(‘{:This is the content:}’,$b,$content);(額。。這個函數參數順序記不太清楚了) $fp1=fopen(‘b.html’,’w’); fwrite($fp,$content); fclose($fp); ? 這樣我們就得到了b.html這個文件,就是一個靜態的文件,裏面的代碼如下: body div這裡是內容,可以從數據庫讀取,或者從其他途徑獲得/div /body 這樣說,樓主明白了吧? 其實一般的網站是不需要生成這樣的靜態頁面的,流量低的網站命中率也就低了,而且更新起來非常麻煩。這就需要用到一些其他的技術的。比如SSI啊,比如只保存數據庫查詢結果啊。什麼的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/243787.html