โดยทั่วไป เมื่อเราใช้ PHP เพื่อส่งออกไฟล์ html เราจะใช้สตริงยาวเช่น $head="<head>...</head>" เพื่อดำเนินการให้เสร็จสิ้น คลาสนี้มีวิธีง่ายๆ ในการส่งออกไฟล์ html โดยใช้ PHP เป็นหลัก หลีกเลี่ยงสตริงที่ยาวเกินไปในโปรแกรม
ไฟล์คำจำกัดความคลาส createhtml.class.php เป็นดังนี้:
<?php
-
//TCreateHTML
//สร้างคลาสไฟล์ html แบบคงที่ตามไฟล์เทมเพลต
// ผู้แต่ง: sharetop
// อีเมล:[email protected]
-
//******กำหนดฟังก์ชันการทำงานที่ต้องการ
//แบบแผนเริ่มต้นด้วยแท็ก <!--##name##-->
//ลงท้ายด้วยแท็ก < !--@@name @@-->
ฟังก์ชั่น isbegin($str){
$pattern="<!--##[a-zA-Z]+##-->";
if(ereg($pattern,$str)) คืนค่าจริง;
กลับเท็จ;
-
ฟังก์ชั่น isfinish($str){
$pattern="< !--@@[a-zA-Z ]+@@-->";
if(ereg($pattern,$str)) คืนค่าจริง;
กลับเท็จ;
-
ฟังก์ชั่น getname($str){
$tmp=explode("##",$str);
กลับ $tmp[1];
-
-
//************คลาสคำจำกัดความ
คลาส TCreateHTML {
var $HTemplate;
var $FileName;
var $ModiString;
//*********ฟังก์ชันอินเทอร์เฟซ
//สร้างเทมเพลต
ฟังก์ชั่น TCreateHTML($tmplate){
$this->HTemplate=$tmplate;
-
//ตั้งชื่อไฟล์เอาท์พุต
ฟังก์ชั่น SetHTML($ชื่อไฟล์){
$นี่->ชื่อไฟล์=$ชื่อไฟล์;
-
//ตั้งชื่อแท็กและสตริงการแทนที่ที่เกี่ยวข้อง
ฟังก์ชั่น EditableBlock($name,$replace){
$this->ModiString[$name]=$replace;
-
//เขียนไฟล์ HTML
ฟังก์ชั่น WriteHtml(){
$fc=file($this->HTemplate);
$fp=fopen($this->ชื่อไฟล์,"w");
$k=นับ($เอฟซี);
$เริ่มต้น=เท็จ;
$แรก=เท็จ;
$แท็ก="";
สำหรับ($i=0;$i<$k;$i++){
ถ้า(isbegin($fc[$i])){
fputs($fp,$fc[$i]);
$เริ่มต้น=จริง;
$แรก=จริง;
$tag=getname($เอฟซี[$i]);
ดำเนินการต่อ;
-
ถ้า(isfinish($fc[$i])){
fputs($fp,$fc[$i]);
$เริ่มต้น=เท็จ;
$แรก=เท็จ;
$แท็ก="";
ดำเนินการต่อ;
-
ถ้า($เริ่มต้น==จริง){
ถ้า($แรก==จริง) {
$fc[$i]=$this->ModiString[$tag]" ";
$แรก=เท็จ;
-
อย่างอื่น $fc[$i]="";
-
fputs($fp,$fc[$i]);
-
fclose($fp);
-
//--------จบคลาส
-
?>
ตัวอย่างดังต่อไปนี้:
(
ขั้นแรกให้สร้างไฟล์รูปแบบ html และเพิ่มเครื่องหมาย <!--aaa--> ที่คุณต้องการแทนที่
หมายเหตุ!! ประโยคนี้อยู่ในบรรทัดแยก...
< !--@@aaa @@--> โปรดทราบ! - ประโยคนี้ควรแยกบรรทัด เป็นต้น)
<?
ต้องการ "createhtml.class.php";
$chtml=new TCreateHTML("template.htm");
$chtml->SetHTML("news.htm");
$chtml->EditableBlock("aaa","11aa111aa");
$chtml->EditableBlock("bbb","11bbb122bb");
$chtml->EditableBlock("ccc","11cc333cc");
$chtml->WriteHtml();
-