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

博客介绍了一个根据模板文件生成静态HTML文件的类,涉及PHP和前端HTML技术,可实现从模板到静态文件的转换,在信息技术领域有一定应用价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据模板文件生成一个静态html文件的类
一般我们用PHP输出一个html文件,总是用$head="<head>……</head>"这样一个长串来完成。本类主要提供一个简便的用PHP输出html文件的方法。避免了在程序中出现过多的带有长字串。

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

<?php


//*****定义所需工作函数

//约定以标记<!--##name##-->为开始
//以标记<!--@@name@@-->为结束

functionisbegin($str){
$pattern="<!--##[a-zA-Z]+##-->";
if(
ereg($pattern,$str))returntrue;
return
false;
}

function
isfinish($str){
$pattern="<!--@@[a-zA-Z]+@@-->";
if(
ereg($pattern,$str))returntrue;
return
false;
}

function
getname($str){
$tmp=explode("##",$str);
return
$tmp[1];
}

//******************


//*******定义类

classTCreateHTML{

var
$HTemplate;
var
$FileName;
var
$ModiString;


//********接口函数

//构造模板
functionTCreateHTML($tmplate){
$this->HTemplate=$tmplate;
}

//设置输出文件名
functionSetHTML($filename){
$this->FileName=$filename;
}

//设置标记的名字与相应取代的字串
functionEditableBlock($name,$replace){
$this->ModiString[$name]=$replace;
}

//写HTML文件
functionWriteHtml(){

$fc=file($this->HTemplate);

$fp=fopen($this->FileName,"w");

$k=count($fc);

$begin=false;
$first=false;
$tag="";

for(
$i=0;$i<$k;$i++){

if(
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);
}

//--------classend
}
?>

例子如下:

先作一个html格式文件,在想替换的地方加上标记
<!--aaa-->   注意!!本句单独一行
………
<!--@@aaa@@--> 注意!!本句单独一行



<?
require"createhtml.class.php";

$chtml=newTCreateHTML("template.htm");

$chtml->SetHTML("news.htm");

$chtml->EditableBlock("aaa","11aa111aa");
$chtml->EditableBlock("bbb","11bbb122bb");
$chtml->EditableBlock("ccc","11cc333cc");

$chtml->WriteHtml();

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值