PHP靜態(tài)頁(yè)面教程(模板及模板解析)(組圖)
2021-08-19
1、server會(huì)依據(jù)文件的后綴名去進(jìn)行解析,假設(shè)是HTML文件則server不會(huì)進(jìn)行語(yǔ)法解析。而是直接輸出到瀏覽器。
2、假設(shè)一個(gè)頁(yè)面中所有都是HTML代碼而沒(méi)有須要解析的PHP語(yǔ)法,則沒(méi)有必要保存為PHP文件,這樣反而會(huì)減少執(zhí)行效率。
3、假設(shè)是須要PHP控制HTML代碼的輸出,比方須要PHP推斷用戶是否登陸,假設(shè)登陸則輸出A,未登錄則輸出B。這就須要PHP來(lái)進(jìn)行控制了。HTML不能實(shí)現(xiàn)這種功能
PHP生成靜態(tài)頁(yè)面教程,一些主要概念
一,PHP 腳本和動(dòng)態(tài)頁(yè)面。
PHP 腳本是一個(gè)結(jié)束腳本程序,可以通過(guò)嵌入等方式與 HTML 文件混合。也可以歸類(lèi)。功能包裝等形式。以模板的形式處理用戶請(qǐng)求。
無(wú)論如何,它的基本原理是這樣的。通過(guò)發(fā)出請(qǐng)求,請(qǐng)求某個(gè)頁(yè)面----->引入指定的對(duì)應(yīng)腳本進(jìn)行處理----->腳本被加載----->腳本被指定的PHP解析器解析形成HTML語(yǔ)言形式- --->解析后的HTML語(yǔ)句以包的形式發(fā)回瀏覽器。
不難看出,頁(yè)面發(fā)送到瀏覽器后,PHP 就不復(fù)存在了。已轉(zhuǎn)換并解析為 HTML 語(yǔ)句。客戶端請(qǐng)求是一個(gè)動(dòng)態(tài)文件。事實(shí)上php代碼怎么放到html,那里不存在真正的文件。由PHP解析形成相應(yīng)的頁(yè)面,然后發(fā)送回瀏覽器。
這種頁(yè)面處理方式稱為“動(dòng)態(tài)頁(yè)面”。
兩個(gè)。靜態(tài)頁(yè)面。
靜態(tài)頁(yè)面是指只包含最后確實(shí)存在的HTML、JS、CSS等執(zhí)行腳本的頁(yè)面。
它的處理方式是。按要求。請(qǐng)求頁(yè)面 ----> 確認(rèn)并加載頁(yè)面 ----> 將頁(yè)面以包的形式傳回瀏覽器。
從這個(gè)過(guò)程,我們來(lái)對(duì)比一下動(dòng)態(tài)頁(yè)面。你現(xiàn)在可以。動(dòng)態(tài)頁(yè)面需要通過(guò)PHP解析器進(jìn)行解析,通常需要連接數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)操作。然后就可以形成HTML語(yǔ)言信息包。靜態(tài)頁(yè)面不需要解析或連接數(shù)據(jù)庫(kù)直接發(fā)送,可以大大降低壓力,提高負(fù)載能力。顯著提供頁(yè)面打開(kāi)速度和網(wǎng)站整體打開(kāi)速度。但它的缺點(diǎn)是不能動(dòng)態(tài)處理請(qǐng)求,而且文件必須實(shí)際存在于其上。
三個(gè)。模板和模板分析。模板尚未填充內(nèi)容 html 文件。例如:
temp.html
代碼:
{ title } this is a { file } file's templets PHP處理: templetest.php Code: $title = "拓邁國(guó)際測(cè)試模板"; $file = "TwoMax Inter test templet, author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{ file }",$file,$content); $content .= str_replace ("{ title }",$title,$content); echo $content; ?>
模板解析處理是將PHP腳本解析處理后得到的結(jié)果填充()到模板中的過(guò)程。通常在模板類(lèi)的幫助下。目前比較流行的模板解析類(lèi)是。還有很多。模板分析處理的原則通常是替換。一些程序員習(xí)慣于將推理、循環(huán)和其他處理放入模板文件中。使用解析類(lèi)來(lái)處理,典型的應(yīng)用是一個(gè)概念,簡(jiǎn)單來(lái)說(shuō)就是一個(gè)循環(huán)處理。
PHP 腳本指定循環(huán)次數(shù)、如何循環(huán)替換等,然后模板解析類(lèi)詳細(xì)實(shí)現(xiàn)這些操作。
好吧,我已經(jīng)比較了靜態(tài)和動(dòng)態(tài)頁(yè)面的優(yōu)缺點(diǎn)。現(xiàn)在讓我們談?wù)勊?。如何用PHP生成靜態(tài)文件。
PHP 生成靜態(tài)頁(yè)面,不代表 PHP 的動(dòng)態(tài)分析和 HTML 頁(yè)面的輸出。它是指用 PHP 創(chuàng)建 HTML 頁(yè)面。
同時(shí),由于HTML的不可寫(xiě)性,如果我們創(chuàng)建的HTML發(fā)生變化,我們需要將其刪除并重新生成。 (當(dāng)然你也可以選擇使用正則進(jìn)行修改,但個(gè)人覺(jué)得還是刪掉重新生成比較好。有些得不償失。)
回到正題。用過(guò)PHP文件操作函數(shù)的PHP愛(ài)好者都知道。 PHP 中有一個(gè)文件操作函數(shù)。文件被打開(kāi)。如果文件不存在,請(qǐng)嘗試創(chuàng)建。
這是PHP可以用來(lái)創(chuàng)建HTML文件的理論基礎(chǔ)。只有用來(lái)存放HTML文件的文件夾才有寫(xiě)權(quán)限(即權(quán)限定義0777)。可以創(chuàng)建文件。(對(duì)于UNIX系統(tǒng),Win系統(tǒng)不需要考慮。)以上面的例子為例,如果我們修改最后一句,指定在test文件夾下生成一個(gè)名為test.html的靜態(tài)文件:
代碼:
php $title = "拓邁國(guó)際測(cè)試模板"; $file = "TwoMax Inter test templet, author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{ file }",$file,$content); $content .= str_replace ("{ title }",$title,$content); // echo $content; $filename = "test/test.html"; $handle = fopen ($filename,"w"); //打開(kāi)文件指針。創(chuàng)建文件 /* 檢查文件是否被創(chuàng)建且可寫(xiě) */ if (!is_writable ($filename)){ die ("文件:".$filename."不可寫(xiě)。請(qǐng)檢查其屬性后重試。"); } if (!fwrite ($handle,$content)){ //將信息寫(xiě)入文件 die ("生成文件".$filename."失??!"); } fclose ($handle); //關(guān)閉指針 die ("創(chuàng)建文件".$filename."成功!
"); ?>
實(shí)際應(yīng)用中常見(jiàn)問(wèn)題解決方法參考: 1.文章列表問(wèn)題:在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)字段。記錄文件名,每次生成文件時(shí)將自己自動(dòng)生成的文件名存入數(shù)據(jù)庫(kù)。對(duì)于推薦文章,只需指向指定靜態(tài)文件存放目錄下的頁(yè)面即可。使用PHP操作處理文章列表,保存為字符串,生成頁(yè)面時(shí)替換此字符串。
例如在頁(yè)面上放置文章列表的表格中添加標(biāo)簽{},在PHP處理文件中:
代碼:
"); } if (!fwrite ($handle,$content)){ //將信息寫(xiě)入文件 die ("生成文件".$filename."失?。?/p>"); } fclose ($handle); //關(guān)閉指針 die ("創(chuàng)建文件".$filename."成功。"); ?>
其次,分頁(yè)問(wèn)題。例如,當(dāng)我們指定分頁(yè)時(shí),每頁(yè)有 20 篇文章。某個(gè)子頻道的列表中的文章數(shù)已經(jīng)被數(shù)據(jù)庫(kù)查詢到了45。但是。首先我們通過(guò)查詢得到如下參數(shù): 1.總頁(yè)數(shù); 2、每頁(yè)文章數(shù)。
第二步,for ($i = 0; $i
";把這句話去掉php代碼怎么放到html,放在循環(huán)后的顯示器上,因?yàn)檫@句話會(huì)停止程序運(yùn)行。例:
代碼:
$fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $onepage = '20'; $sql = "select id from article where channel='$channelid'"; $query = mysql_query ($sql); $num = mysql_num_rows ($query); $allpages = ceil ($num / $onepage); for ($i = 0;$i<$allpages; $i++){ if ($i == 0){ $indexpath = "index.html"; } else { $indexpath = "index_".$i."html"; } $start = $i * $onepage; $list = ''; $sql_for_page = "select name,filename,title from article where channel='$channelid' limit $start,$onepage"; $query_for_page = mysql_query ($sql_for_page); while ($result = $query_for_page){ $list .= ''.$title.''; } $content = str_replace ("{ articletable }",$list,$content); if (is_file ($indexpath)){ @unlink ($indexpath); //若文件已存在。則刪除 } $handle = fopen ($indexpath,"w"); //打開(kāi)文件指針。創(chuàng)建文件 /* 檢查文件是否被創(chuàng)建且可寫(xiě) */ if (!is_writable ($indexpath)){ echo "文件:".$indexpath."不可寫(xiě),請(qǐng)檢查其屬性后重試!
"; //改動(dòng)為echo } if (!fwrite ($handle,$content)){ //將信息寫(xiě)入文件 echo "生成文件".$indexpath."失??!"; //改動(dòng)為echo } fclose ($handle); //關(guān)閉指針 } fclose ($fp); die ("生成分頁(yè)文件完畢。如生成不全然,請(qǐng)檢查文件權(quán)限系統(tǒng)后又一次生成!
"); ?
>
總體思路是這樣的。其中,其他數(shù)據(jù)生成、數(shù)據(jù)輸入輸出檢查、頁(yè)面內(nèi)容指向等可酌情添加到頁(yè)面中。
在實(shí)際文章系統(tǒng)處理過(guò)程中。還有很多問(wèn)題需要考慮。與動(dòng)態(tài)頁(yè)面不同,還有很多需要注意的地方。
但總體思路是一樣的。其他方面可以相互推論。
使用PHP制作靜態(tài)網(wǎng)站模板框架
模板可以改善網(wǎng)站的結(jié)構(gòu)。
本文解釋了如何在 PHP 4 中傳遞一個(gè)新的特性和模板類(lèi)。在一個(gè)由大量靜態(tài) HTML 頁(yè)面組成的站點(diǎn)中,您可以巧妙地使用模板來(lái)控制頁(yè)面布局。
大綱:
==================================
獨(dú)立的功能和布局
避免重復(fù)的頁(yè)面元素
靜態(tài)網(wǎng)站的模板框架
==================================
單獨(dú)的功能和布局首先我們來(lái)看一下應(yīng)用模板的兩個(gè)主要目的:
分離功能(PHP)和布局(HTML)以避免頁(yè)面元素重復(fù)
第一個(gè)目的是談?wù)撟疃嗟哪康?。它設(shè)想了這樣一種情況,一群程序員編寫(xiě)PHP腳本來(lái)生成頁(yè)面內(nèi)容,同時(shí)還有一群設(shè)計(jì)者設(shè)計(jì)HTML和圖形來(lái)控制頁(yè)面。外部的。功能和布局分離的基本思路是讓這兩組人能夠編寫(xiě)和使用一組獨(dú)立的文件:程序員只需要關(guān)心那些只包含PHP代碼的文件,不需要關(guān)心頁(yè)面外觀
。并且頁(yè)面設(shè)計(jì)者可以使用他們最熟悉的可視化編輯器來(lái)設(shè)計(jì)頁(yè)面布局。無(wú)需擔(dān)心破壞頁(yè)面中嵌入的任何 PHP 代碼。
假設(shè)你之前看過(guò)一些關(guān)于PHP模板的教程,那么你應(yīng)該已經(jīng)明確了模板的工作機(jī)制??紤]一個(gè)簡(jiǎn)單的頁(yè)面部分:頁(yè)面頂部是頁(yè)眉。左邊是導(dǎo)航欄,其余是內(nèi)容區(qū)。這樣的站點(diǎn)可以有如下模板文件:
模板演示樣例
{HEADER} | |
{LEFTNAV} | {CONTENT} |
福
條形
您可以看到頁(yè)面是如何從這些模板構(gòu)建的:主模板控制整個(gè)頁(yè)面的布局。模板和模板控制頁(yè)面的公共元素。花括號(hào)“{}”內(nèi)的標(biāo)識(shí)符是內(nèi)容占位符。使用模板最基本的好處是界面設(shè)計(jì)者可以根據(jù)自己的意愿編輯這些文件,比如設(shè)置字體、改變顏色和圖形,或者完全改變頁(yè)面的布局。
界面設(shè)計(jì)師可以使用任何普通的 HTML 編輯器或可視化工具編輯這些頁(yè)面。因?yàn)檫@些文件只包含 HTML 代碼。無(wú)論什么 PHP 代碼。
所有的 PHP 代碼都保存在一個(gè)單獨(dú)的文件中。這個(gè)文件就是頁(yè)面 URL 實(shí)際調(diào)用的文件。文件由PHP引擎解析,結(jié)果返回給瀏覽器。
一般。 PHP 代碼始終動(dòng)態(tài)生成頁(yè)面內(nèi)容,例如查詢數(shù)據(jù)庫(kù)或運(yùn)行某些計(jì)算。下面是一個(gè)例子:
define( array( 'main' => 'main.htm', 'header' => 'header.htm', 'leftnav' => 'leftnav.htm' ) ); // 此處的PHP代碼設(shè)置$content使其包括合適的頁(yè)面內(nèi)容 $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); ?>
這里我們使用流行的模板類(lèi)。但是對(duì)于許多其他模板類(lèi),基本思想是相同的。
首先實(shí)例化一個(gè)類(lèi),告訴它在哪里可以找到模板文件以及哪個(gè)模板文件對(duì)應(yīng)于頁(yè)面的哪個(gè)部分。下一步是生成頁(yè)面內(nèi)容。將結(jié)果分配給內(nèi)容的標(biāo)識(shí)符;然后,依次解析每個(gè)模板文件,模板類(lèi)將執(zhí)行必要的替換操作。最后將分析結(jié)果輸出到瀏覽器。
該文件完全由 PHP 代碼組成。不包含任何 HTML 代碼。這是它最大的優(yōu)勢(shì)。
如今,PHP 程序員可以專注于編寫(xiě)生成頁(yè)面內(nèi)容的代碼。您不必?fù)?dān)心如何生成 HTML 以正確設(shè)置最終頁(yè)面的格式。
您可以使用此方法和上述文件來(lái)構(gòu)建一個(gè)完整的站點(diǎn)。假設(shè) PHP 代碼根據(jù) URL 中的查詢字符串生成頁(yè)面內(nèi)容。例如。您可以相應(yīng)地構(gòu)建一個(gè)完整的雜志站點(diǎn)。
很容易看出使用模板還有第二個(gè)優(yōu)勢(shì)。
如上例所示。頁(yè)面左側(cè)的導(dǎo)航欄單獨(dú)保存為文件。我們只需要編輯這個(gè)模板文件就可以改變網(wǎng)站所有頁(yè)面左側(cè)的導(dǎo)航欄。
避免重復(fù)的頁(yè)面元素
“這真是太好了”,您可能會(huì)想,“我的網(wǎng)站主要由大量靜態(tài)頁(yè)面組成。
現(xiàn)在我可以從所有頁(yè)面中刪除他們的公共部分。更新這些公共部分太麻煩了。
將來(lái),我將能夠使用模板來(lái)創(chuàng)建非常易于維護(hù)的統(tǒng)一頁(yè)面布局。 “但事情并沒(méi)有那么簡(jiǎn)單?!贝罅快o態(tài)頁(yè)面說(shuō)明問(wèn)題。
請(qǐng)考慮上面的例子。這個(gè)示例實(shí)際上只有一個(gè) .php 頁(yè)面。之所以能生成整個(gè)站點(diǎn)的所有頁(yè)面,是因?yàn)樗肬RL中的查詢字符串,從數(shù)據(jù)庫(kù)等信息源動(dòng)態(tài)構(gòu)建頁(yè)面。
我們大多數(shù)人運(yùn)行的網(wǎng)站不一定有數(shù)據(jù)庫(kù)支持。
我們的網(wǎng)站大部分都是由靜態(tài)頁(yè)面組成的,然后我們使用PHP在這里和那里添加了一些動(dòng)態(tài)功能,例如搜索引擎、反饋表單等。
那么,如何在這樣的網(wǎng)站上應(yīng)用模板?
最簡(jiǎn)單的方法是為每個(gè)頁(yè)面復(fù)制一個(gè)PHP文件,
然后將表示 PHP 代碼中內(nèi)容的變量設(shè)置為每個(gè)頁(yè)面中相應(yīng)的頁(yè)面內(nèi)容。
比如有三個(gè)頁(yè)面,分別是首頁(yè)(home)、關(guān)于()和產(chǎn)品()。我們可以從三個(gè)文件中分別生成它們。這三個(gè)文件的內(nèi)容都類(lèi)似于:
define( array( 'main' => 'main.htm', 'header' => 'header.htm', 'leftnav' => 'leftnav.htm' ) ); $content = "歡迎訪問(wèn)
希望你可以喜歡本站點(diǎn)
"; $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); ?>
顯然。這種方式存在三個(gè)問(wèn)題:我們要復(fù)制這些復(fù)雜的PHP代碼,涉及每個(gè)頁(yè)面的模板,這使得頁(yè)面像重復(fù)的公共頁(yè)面元素一樣難以維護(hù);現(xiàn)在這些文件與 HTML 和 PHP 代碼混合在一起。給內(nèi)容變量賦值會(huì)變得非常困難,因?yàn)槲覀円幚泶罅康奶厥庾址?/p>
解決問(wèn)題的關(guān)鍵是將PHP代碼和HTML內(nèi)容分開(kāi),雖然我們無(wú)法從文件中刪除所有HTML內(nèi)容。但它可以刪除大部分 PHP 代碼。
靜態(tài)網(wǎng)站模板框架
首先,我們像之前一樣為頁(yè)面的所有常用元素和頁(yè)面的整體布局編寫(xiě)模板文件;然后刪除所有頁(yè)面的公共部分,只留下頁(yè)面內(nèi)容。接下來(lái),向每個(gè)頁(yè)面添加三行 PHP 代碼,如下所示:
php require('prepend.php'); ?>你好
歡迎訪問(wèn)
希望你可以喜歡本站點(diǎn)
?>
這種方法基本上克服了上面提到的各種問(wèn)題。今天文件中只有三行PHP代碼,沒(méi)有一行代碼直接引用模板。因此,修改這些代碼的可能性極小。另外,因?yàn)?HTML 內(nèi)容在 PHP 標(biāo)簽之外。因此,不存在處理特殊字符的問(wèn)題。我們可以輕松地將這三行 PHP 代碼添加到所有靜態(tài) HTML 頁(yè)面中。
該函數(shù)引入了一個(gè) PHP 文件。此文件包含與模板相關(guān)的所有必要 PHP 代碼。
該函數(shù)設(shè)置模板對(duì)象和頁(yè)面標(biāo)題。該函數(shù)解析模板并生成結(jié)果并發(fā)送給瀏覽器。
這是如何實(shí)現(xiàn)的?為什么在調(diào)用函數(shù)之前文件中的HTML沒(méi)有發(fā)送到瀏覽器?答案在于 PHP 4 的一個(gè)新特性,它同意將輸出到瀏覽器的內(nèi)容攔截到緩沖區(qū)中。
我們來(lái)看看.php的詳細(xì)代碼:
define( array( 'main' => 'main.htm', 'header' => 'header.htm', 'leftnav'=> 'leftnav.htm' ) ); $tpl->assign('TITLE', $title); ob_start(); } function pageFinish() { GLOBAL $tpl; $content = ob_get_contents(); ob_end_clean(); $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); } ?>
該函數(shù)首先創(chuàng)建并設(shè)置一個(gè)模板實(shí)例。然后啟用輸出緩存。
在那之后。頁(yè)面本身的所有 HTML 內(nèi)容都將進(jìn)入緩存。該函數(shù)獲取緩存中的內(nèi)容。然后在模板對(duì)象中指定這些內(nèi)容。最后解析模板并輸出完成的頁(yè)面。
這就是整個(gè)模板框架的全部工作過(guò)程。
先寫(xiě)一個(gè)模板,包含網(wǎng)站每個(gè)頁(yè)面的公共元素,然后把所有頁(yè)面的公共頁(yè)面布局代碼全部刪除,替換成三行永遠(yuǎn)不需要修改的PHP代碼;然后添加類(lèi)文件和 .php 以包含 Path,這樣您就可以得到一個(gè)可以集中控制頁(yè)面布局的站點(diǎn)。它具有更好的可靠性和可維護(hù)性。并且站點(diǎn)級(jí)別的大規(guī)模修改變得非常容易。
本文下載包包含
一個(gè)可執(zhí)行的演示站點(diǎn),它的代碼凝視比以前的代碼凝視更具體。該類(lèi)可以在。最新版本是1.1.0,還有一個(gè)小補(bǔ)丁用來(lái)保證這個(gè)類(lèi)在PHP 4中正確執(zhí)行。本文下載代碼中的類(lèi)已經(jīng)被這個(gè)補(bǔ)丁修正了。
PHP輕松生成靜態(tài)頁(yè)面
NEWS
標(biāo)題 | 公布時(shí)間 |
">= $re["title"]? > |
= $re["datetime"]?> |
加入新聞 |
>
用PHP生成靜態(tài)網(wǎng)頁(yè)的兩個(gè)函數(shù)
近年來(lái)。萬(wàn)維網(wǎng)(也稱為萬(wàn)維網(wǎng)。WWW)正在不斷地改變著信息處理技術(shù)的面貌。網(wǎng)絡(luò)已成為高速的有效介質(zhì)。并且適合人與企業(yè)之間的交流與協(xié)作。幾乎所有的信息技術(shù)領(lǐng)域都普遍受到WEB的影響。 Web 訪問(wèn)帶來(lái)了許多其他用戶和許多其他數(shù)據(jù)。這意味著數(shù)據(jù)庫(kù)面臨很多其他壓力,最終用戶的響應(yīng)速度越來(lái)越慢。與不斷增加 CPU、磁盤(pán)驅(qū)動(dòng)器和內(nèi)存以跟上這種增長(zhǎng)的需求相比,靜態(tài)網(wǎng)頁(yè)應(yīng)該更有用。更經(jīng)濟(jì)的選擇。
靜態(tài)WEB動(dòng)態(tài)網(wǎng)頁(yè)用PHP的詳細(xì)實(shí)現(xiàn)功能見(jiàn)()
function gen_static_file($program, $filename) { $program 1= "/usr/local/apache/htdocs/php/" . $program; $filename1 = "/usr/local/apache/htdocs/ static_html/" . $filename; $cmd_str = "/usr/local/php4/bin/php " . $program1 . " } " . $filename1 . " "; system($cmd_str); echo $filename . " generated.〈br〉"; }
這個(gè)函數(shù)是實(shí)現(xiàn)靜態(tài)的關(guān)鍵,即PHP動(dòng)態(tài)頁(yè)面程序不是發(fā)送到瀏覽器,而是輸入到名為$的文件中(如2)所示。
這兩個(gè)參數(shù)中,$是PHP動(dòng)態(tài)頁(yè)面程序,$是生成的靜態(tài)頁(yè)面的名稱(可以根據(jù)自己的需要制定自己的命名規(guī)則,這個(gè)很重要,見(jiàn)下文),/usr/ /php4/bin/php 是PHP中具有將程序輸入文件功能的部分。它是一個(gè)在 PHP 中運(yùn)行外部命令的函數(shù)。我們還可以看到,所有生成動(dòng)態(tài)頁(yè)面的php程序都需要放在/php/文件夾中,所有新生成的靜態(tài)頁(yè)面都會(huì)出現(xiàn)在//文件夾中(這些路徑可以根據(jù)具體需求設(shè)置)。
讓我們?cè)谙旅娼o出一個(gè)詳細(xì)的例子。看看靜態(tài)的.php頁(yè)面是如何生成的。
function gen_college_static () { for ($i = 0; $i 〈= 32; $i++〉 { putenv("province_id=" . $i); //*.php文件從數(shù)據(jù)庫(kù)取數(shù)據(jù)時(shí)要用到。 $filename = " college_static". $i . ".html"; gen_static_file("college_static.php", $filename); }
從這個(gè)函數(shù)可以看出,通過(guò)調(diào)用函數(shù)(),.php是靜態(tài)的。變成了33個(gè)靜態(tài)頁(yè)面..html~..html,其中$會(huì)隨著$I的變化而變化。當(dāng)然,也可以直接從數(shù)據(jù)庫(kù)中取值。為了控制生成的靜態(tài)頁(yè)面的數(shù)量和名稱,其他程序?qū)ι傻撵o態(tài)頁(yè)面的調(diào)用應(yīng)與靜態(tài)頁(yè)面的命名規(guī)則保持一致。