Home >php教程 >php手册 >根据模板文件生成一个静态html文件的类

根据模板文件生成一个静态html文件的类

WBOY
WBOYOriginal
2016-06-13 10:35:241037browse

一般我们用PHP输出一个html文件,总是用$head="

……"这样一个长串来完成。本类主要提供一个简便的用PHP输出html文件的方法。避免了在程序中出现过多的带有长字串。

类定义文件 createhtml.class.php 如下:

//-------------------
// TCreateHTML
//根据模板文件生成一个静态html文件的类
// 作者:sharetop
// email:ycshowtop@21cn.com
//-------------------
//*****定义所需工作函数
//约定以标记 为开始
//以标记为结束
function isbegin($str){
$pattern="";
if(ereg($pattern,$str)) return true;
return false;
}
function isfinish($str){
$pattern="";
if(ereg($pattern,$str)) return true;
return false;
}
function getname($str){
$tmp=explode("##",$str);
return $tmp[1];
}
//******************
//*******定义类
class TCreateHTML {
var $HTemplate;
var $FileName;
var $ModiString;
//********接口函数
//构造模板
function TCreateHTML($tmplate){
$this->HTemplate=$tmplate;
}
//设置输出文件名
function SetHTML($filename){
$this->FileName=$filename;
}
//设置标记的名字与相应取代的字串
function EditableBlock($name,$replace){
$this->ModiString[$name]=$replace;
}
//写HTML文件
function WriteHtml(){
$fc=file($this->HTemplate);
$fp=fopen($this->FileName,"w");
$k=count($fc);
$begin=false;
$first=false;
$tag="";
for($i=0;$iif(isbegin($fc[$i])){
fputs($fp,$fc[$i]);
$begin=true;
$first=true;
$tag=getname($fc[$i]);
continue;
}
if(isfinish($fc[$i])){
fputs($fp,$fc[$i]);
$begin=false;
$first=false;
$tag="";
continue;
}
if($begin==true){
if($first==true) {
$fc[$i]=$this->ModiString[$tag]." ";
$first=false;
}
else $fc[$i]="";
}
fputs($fp,$fc[$i]);
}
fclose($fp);
}
//--------class end
}
?>

例子如下:

先作一个html格式文件,在想替换的地方加上标记

   注意!!本句单独一行
………
 注意!!本句单独一行


require "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();
?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn