PHP生成HTML的思路 高階篇

2021-08-22 15:56:56 字數 3458 閱讀 3497

目前網路上好多**的新聞發布系統都採用了動態伺服器技術生成靜態html的做法,這樣做的好處是:一是能減輕其伺服器的負擔,二是因為生成了html靜態頁面,所以其**被搜尋引擎搜尋到的機率更大一些。筆者的**曾經使用php這一動態技術來構建新聞發布系統,其原理也就是應用了php生成html靜態頁面的技術,相關平台是 windows xp sp2+php4.32+mysql,因此,在這裡,想簡單地談一下這種做法的思路。這篇文章適合於對php+mysql資料庫操作,sql語句以及網頁設計有點基礎的朋友,如果您是乙個從頭開始學的朋友,那麼請先打好基礎吧!到這裡就不用往下看了。如果您都符合上述條件的話,那麼恭喜您,請接著往下看。但是,在具體動手構建之前,您還要做好以下幾點準備工作。

一、 具備本地除錯php的功能

二、 構思新聞發布系統所具備的功能

首頁的新聞發布往往是通過後台更新的,後台的更新無非是由新增、編輯、刪除資料等基本的功能所實現的。在這裡,你可以使用網頁設計軟體來構建你的想要的後台介面,其功能的實現當然是要用到php嘍。這一步建議您先想好新聞發布系統要有的功能。在這裡,如何用php新增、編輯、刪除資料就不再重複,因為重點是如何在這基礎上生成靜態技術。

三、 php生成html的技術原理。

哈哈。費話說了那麼多,終於到了該講的地方了。其實,這一原理並不複雜,綜合地來講的話,應該是php中乙個替換資料語法的應用。ok,講乙個簡單範例吧,一步一步地分析!相信聰明的你能看得明白的咯,仔細看好每一步即可,在這裡,只是引導大家如何做而已,具體的可以實踐一下!

(1)在mysql裡新建一資料庫,命名為 database (可自定義),新建一表,命名為 news(因為是新聞發布嘛,取個好記的名字即可,可自定義),然後建立這幾個欄位名:

id (自動遞增,這是關鍵,型別:int)

title (顧名思義,新聞標題,型別可取 text)

content (新聞內容,型別可取 text)

path (html檔案路徑,型別可取 text)

(2)建立 conn.php

這是連線資料庫的php檔案,你可以把連線資料的語句單獨放在這一檔案裡,以後多個需要連線資料庫的檔案直接引用這個檔案即可。

[ctrl+a 全部選擇 然後拷貝]

大括號內的內容即是要被替換的內容,整個靜態模板的設計可以根據自己的思路,但內被替換的內容必須包含在內,如上面的,;咔咔~簡單地說,設計好乙個很好看的新聞模板後,把要被替換的如,等標記放到需要的地方就可以了撒。

(5)詳解 add.php 原始碼

<?php

require_once(「conn.php」); //引用conn.php,連線資料庫

$title=$_post[「title」];

$content=$_post[「content」]; //獲得表單變數

//以下建立一文字文件,其值自動計數

$countfile="count.txt";

if(!file_exists($countfile))

$fp=fopen($countfile,"r");

$num=fgets($fp,20);

$num=$num+1; //每次其值自動加一

fclose($fp);

$fp=fopen($countfile,"w");

fwrite($fp,$num); //更新其值

fclose($fp);

**拷貝框

<?php require_once(「conn.php」); //引用conn.php,連線資料庫 $title=$_post[「title」]; $content=$_post[「content」]; //獲得表單變數 //以下建立一文字文件,其值自動計數 $countfile="count.txt"; if(!file_exists($countfile)) $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=」insert into news (title,content,path) values (『」.$title.」』,』」.$content.」』,』」.$path.」』)」;

$query=mysql_query($sql);

//以下為關鍵之處,把從表單獲得的資料替換模板中的,標記 $fp=fopen(「model.htm」,」r」) //唯讀開啟模板

$str=fread($fp,filesize(「mode.htm」));//讀取模板中內容

$str=str_replace(「」,$title,$str);

$str=str_replace(「」,$content,$str);//替換內容

fclose($fp);

$handle=fopen($path,」w」); //寫入方式開啟新聞路徑

fwrite($handle,$str); //把剛才替換的內容寫進生成的html檔案

fclose($handle);

**拷貝框

$fp=fopen(「model.htm」,」r」) //唯讀開啟模板 $str=fread($fp,filesize(「mode.htm」));//讀取模板中內容 $str=str_replace(「」,$title,$str); $str=str_replace(「」,$content,$str);//替換內容 fclose($fp); $handle=fopen($path,」w」); //寫入方式開啟新聞路徑 fwrite($handle,$str); //把剛才替換的內容寫進生成的html檔案 fclose($handle);

[ctrl+a 全部選擇 然後拷貝]

//收尾工作:

echo 「檢視剛才新增的新聞」;

**拷貝框

echo 「檢視剛才新增的新聞」;

[ctrl+a 全部選擇 然後拷貝]

ok,整個生成html的示例原始碼就到這裡,其關鍵是用了替換的方法。

$str=str_replace(「」,$替換的內容,$str);

因此,總結一下以上的做法:先設計好新聞模板,把需要被替換的內容用放到模板中相應的位置,然後設計表單,再是最後的表單處理程式,把從表單中獲取的變數替換模板中相應的內容即可,這樣每次都會生成不同的html;如果需要修改html的內容也是一樣的,獲得修改後的表單內容後,先用 update 語句更新資料庫,再重新替換一下模板中的內容即可;刪除的話,先delete表中要刪除的內容,再用unlink($path) 來刪除html的物理檔案即可。

淺淡PHP生成HTML的思路

目前網路上好多 的新聞發布系統都採用了動態伺服器 技術生成靜態 htmlphp這 一動態技術來構建新聞發布系統,其原理也就是應用了php生成html靜態頁面的技術,相關平台是 windows xp sp2 php4.32 mysql,因此,在這裡,想簡單地談一下這種做法的思路。這篇文章適合於對php...

淺淡PHP生成HTML的思路

目前網路上好多 的新聞發布系統都採用了動態伺服器技術生成靜態html的做法,這樣做的好處是 一是能減輕其伺服器的負擔,二是因為生成了html靜態頁面,所以其 被搜尋引擎搜尋到的機率更大一些。這篇文章適合於對php mysql資料庫操作,sql語句以及網頁設計有點基礎的朋友,如果您是乙個從頭開始學的朋...

php生成html分頁方法 ob篇

效果圖如下 第一頁 第二頁 實現方法如下 加入收藏 設為首頁 典型使用者 相關合影 售後 0731 5078995 銷售 0731 5078877 客戶投訴 0731 5078995 傳 真 0731 5078995 e mail jswkj jswkj.com 地 址 湖南長沙市五一 路105號 ...