PHP生成靜態文章HTML,有批量的生成,但比較標準的應該是在添加文章時就生成HTML文章,編輯時再重新生成HTML文章,刪除文章時同樣也樣刪除多餘出來的HTML文章,這時批量生成就顯得有點力不從心了,以下就介紹一下PHP在新增文章時如何產生靜態的HTML檔。
簡單的新增文章表單這裡就不寫了,下面的這些原始碼是接受表單傳過來的值而執行的程式原始碼,可以先拿過去測試一下。 。 。
<?php ob_start(); require_once("../inc/conn.php"); $typ=$_POST["typ"]; $title=$_POST["title"]; $content=$_POST["d_content"]; $author=$_POST["author"]; $source=$_POST["source"]; $mobanpath="../moban/moban.html"; if(file_exists($mobanpath)) { $fp=fopen($mobanpath,"r"); $str=fread($fp,filesize($mobanpath)); $str=str_replace("-title-",$title,$str); $str=str_replace("-time-",date("Y-m-d H:i:s"),$str); $str=str_replace("-content-",$content,$str); $str=str_replace("-author-",$author,$str); $str=str_replace("-source-",$source,$str); $foldername=date("Y-m-d"); $folderpath="../newslist/".$foldername; if(!file_exists($folderpath)) { mkdir($folderpath); } $filename=date("H-i-s").".html"; $filepath="$folderpath/$filename"; if(!file_exists($filepath)) { $fp=fopen($filepath,"w"); fputs($fp,$str); fclose($fp); } $filepath=$foldername."/".$filename; $sql="insert into newscontent (newstypeid,newstitle,newspath,newssource,newstime) values ($typ,'$title','$filepath','$source','".date("Y-m-d H:i:s")."')"; mysql_query($sql); header("location:add.php"); } ?>
ob_start()是開啟session的意思,寫關係不是很大,這裡按照PHP標準的寫法添加上去了。
第二句就是包含連結資料庫的檔案了。
下面$內容=$_POST["內容"];就是接受過來表單的內容了。有幾項就接受幾項吧。
$mobanpath="../moban/moban.html"; 這個是模板的路徑。
if(file_exists($mobanpath)):檢驗模板的檔案是否存在,如果存在的話就執行下面的模板標籤替換操作。
再往下就是利用str_replace來執行模板標籤的替換操作了,同時建立HTML文件,最後透過SQL語句加入到資料庫裡面,再返回到add.php新增文章標單的地方,這裡的產生HTML規則可以自己添加,例如按照時間來生成,或按照文章ID來生成等。
更多php新增文章時產生靜態HTML文章的實作程式碼相關文章請關注PHP中文網!