前言:
目前網絡上好多網站的新聞發布系統都采用了動態服務器技術生成靜態HTML的做法,這樣做的好處是:一是能減輕其服務器的負擔,二是因為生成了HTML靜態頁面,所以其網站被搜索引擎搜索到的機率更大一些。我曾經使用這一動態技術來構建網站新聞發布系統,其原理也就是應用了PHP生成HTML靜態頁面的技術,相關平臺是XPSp2+php4.32+mysql,因此,在這里,想簡單地談一下這種做法的思路。這篇文章適合于對PHP+MYSQL操作,SQL語句以及網頁有點基礎的朋友,如果您是一個從頭開始學的朋友,那么請先打好基礎吧!到這里就不用往下看了。如果您都符合上述條件的話,那么恭喜您,請接著往下看。但是,在具體動手構建之前,您還要做好以下幾點準備工作。
一、具備本地調試PHP的功能
在WINDOWSXP操作系統下,你可以到網上下載一個PHP+MYSQL+APHCHE的服務器套裝,下載完后默認安裝即可,這樣您就具備了在本地測試PHP的功能了,省去了很多手動配置的麻煩,怎么樣,簡單吧,OK,這僅僅只是第一步。
二、構思新聞發布系統所具備的功能
首頁的新聞發布往往是通過后臺更新的,后臺的更新無非是由添加、編輯、刪除數據等基本的功能所實現的。在這里,你可以使用軟件來構建你的想要的后臺界面,其功能的實現當然是要用到PHP嘍。這一步建議您先想好新聞發布系統要有的功能。在這里,如何用PHP添加、編輯、刪除數據就不再重復,因為重點是如何在這基礎上生成靜態技術。
#?p # 分頁標題 # e #
require_once(“conn.php”);//引用conn.php,連接數據庫
$title=$_POST[“title”];
$content=$_POST[“content”];//獲得表單變量
well高級語言主要是相對于匯編語言而言,并不是特指某一種具體的語言,而是包括了很多編程語言,如流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。 像最簡單的編程語言PASCAL語言也屬于高級語言。高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
1)解釋類:執行方式類似于我們日常生活中的“同聲翻譯”,應用程序源代碼一邊由相應語言[1] 的解釋器“翻譯”成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
2)編譯類:編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
//以下建立一文本文檔,其值自動計數
$countfile=”count.txt”;
if(!file_exists($countfile))
{
fopen($countfile,”w”);//如果此文件不存在,則自動建立一個
}
$fp=fopen($countfile,”r”);
$num=fgets($fp,20);
$num=$num+1;//每次其值自動加一
fclose($fp);
$fp=fopen($countfile,”w”);
fwrite($fp,$num);//更新其值
fclose($fp);
[Ctrl+A全部選擇然后拷貝]
//利用上面自動計數的值獲得HTML的路徑$path
$houzui=”.html”;
$path=$num.$houzui;
//這樣形成的路徑是自動增長的,如1.html,2.html,3.html……….添加一條新聞便自動加上1
//以下用SQL語句添加數據至表news
$sql=”insertintonews(title,content,path)values(‘”.$title.”’,’”.$content.”’,’”.$path.”’)”;
$query=mysql_query($sql);
//以下為關鍵之處,把從表單獲得的數據替換模板中的{title},{content}標記$fp=fopen(“model.htm”,”r”)//只讀打開模板
$str=fread($fp,filesize(“mode.htm”));//讀取模板中內容
$str=str_replace(“{title}”,$title,$str);
$str=str_replace(“{content}”,$content,$str);//替換內容
fclose($fp);
$handle=fopen($path,”w”);//寫入方式打開新聞路徑
fwrite($handle,$str);//把剛才替換的內容寫進生成的HTML文件
fclose($handle);
代碼拷貝框
[Ctrl+A全部選擇然后拷貝]
//收尾工作:
echo“<ahref=$pathtarget=_blank style=”margin: 0px; padding: 0px;”>查看剛才添加的新聞”;
代碼拷貝框
[Ctrl+A全部選擇然后拷貝]
OK,整個生成HTML的示例源碼就到這里,其關鍵是用了替換的方法。
$str=str_replace(“{被替換的內容}”,$替換的內容,$str);
因此,總結一下以上的做法:先設計好新聞模板,把需要被替換的內容用{}放到模板中相應的位置,然后設計表單,再是最后的表單處理程序,把從表單中獲取的變量替換模板中相應的內容即可,這樣每次都會生成不同的HTML;如果需要修改HTML的內容也是一樣的,獲得修改后的表單內容后,先用update語句更新數據庫,再重新替換一下模板中的內容即可;刪除的話,先delete表中要刪除的內容,再用unlink($path)來刪除HTML的物理文件即可。