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

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

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

<?php
//-------------------
// TCreateHTML
//根据模板文件生成一个静态html文件的类
// 作者:sharetop
// email:ycshowtop@21cn.com
//-------------------
//*****定义所需工作函数
//约定以标记 <!--##name##-->为开始
//以标记<!--@@-->为结束
function isbegin($str){
$pattern="<!--##[a-zA-Z]+##-->";
if(ereg($pattern,$str)) return true;
return false;
}
function isfinish($str){
$pattern="<!--@@[a-zA-Z]+@@-->";
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;$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);
}
//--------class end
}
?>

时间: 2024-10-29 05:52:50

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

makefile把一个 .cpp文件和它所依赖的几个 .a(静态库文件 ) 生成一个动态库文件.so

问题描述 makefile把一个 .cpp文件和它所依赖的几个 .a(静态库文件 ) 生成一个动态库文件.so 假设编译交叉编译工具路径为dir1(arm-linux-androideabi-gcc-4.9 ),存放生成的.so文件的路径为dir2,test.cpp,依赖1.a,2.a,3.a这三个静态文件库,Makefile文件应该怎么写 解决方案 arm-linux-androideabi-gcc-4.9 -fPIC -shared -o dir2/xxx.so test.cpp 1.a 2

Linux中利用两个现存文件,生成一个新的文件

Linux中利用两个现存文件,生成一个新的文件的方法 前提条件:每个文件中不得有重复行 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat file1 file2 | sort | uniq –u

请问一下webSphere如何只发布一个文件夹,及发布一个静态html文件,没有war包。

问题描述 请问一下webSphere如何只发布一个文件夹,及发布一个静态html文件,没有war包,请大家麻烦解答一下.提供下参考 解决方案 解决方案二:直接复制到相应的工程目录下,配置文件的话直接复制是不行的解决方案三:用wcf开发个就是的啊,,代码直接复制!解决方案四:这样的话没必要用WAS,直接一个HTTPSERVER就可以啦

c#写怎么防止并发操作(一个要删文件,一个要读文件)?

问题描述 c#写怎么防止并发操作(一个要删文件,一个要读文件)? c#写web后台文件和数据库操作,怎么防止并发操作(一个要删文件,一个要读文件)? 解决方案 你读文件的时候指定FileShare.Read,你删除的时候就会收到一个异常,不允许删除. 你在读文件的时候除非读完,不要Close文件,就可以了. https://msdn.microsoft.com/zh-cn/library/system.io.fileshare(VS.80).aspx

xml serial...-如何打开ali文件?一个程序licence文件夹里面的

问题描述 如何打开ali文件?一个程序licence文件夹里面的 如题,如何打开ali文件?找了半天也没有找到可用的fileviewpro,在官方下载的程序安装好了,到是要购买,要18欧元,csdn里面有破解版的,到是安装完了出错,没用

一个进程写文件,一个进程读文件的问题

问题描述 有一个进程 A 每隔一段时间(时间很短)往文件 F 后面加写数据,另一个进程 B 从文件 F 读数据,如何使进程 B 读的速度小于进程 A ,又要使其效率尽量高? 问题补充:xiaoyuqi00 写道 解决方案 如何使进程 B 读的速度小于进程 A ,又要使其效率尽量高?换个角度你把文件中每个字节看成队列中的节点,A一直写,你可以想象成A是往队列里面加值.B一直读,你可以想象成B从队列中取值.这时候B只需要判断队列长度是否发生了变化,如果有变化那么B就应该取值了,通过判断文件长度来触发

向大家求教一个xml文件生成功能目录菜单的问题!

问题描述 我现在有一个xml文件,各式如下:<items><itemText="系统管理"Look-LeftIconUrl=""Expanded="false"><itemText="密码修改"Look-LeftIconUrl="MenuList_icon1.jpg"/><itemText="数据库备份"Look-LeftIconUrl=&quo

jsp页面生成html和zip文件出现乱码?

问题描述 帮朋友改以前一个论坛(在mvnforum上面二次开发出来的),要求是对论坛里面的帖子进行搜索,然后将搜索出来的帖子以及帖子里面的附件打包下载下来1. 我的做法是将搜索出来的结果生成一个静态的html页面,然后与附件一起压缩成ZIP,然后下载.由于java.util.zip会产生中文的乱码,所以我用的是org.apache.tools.zip.(生成静态页面与生成ZIP都是在一个JSP里面)2. 在本地是一切正常的,TOMCAT里面设置了URIEncoding="UTF-8",

生成ZIP格式的文件

问题描述 在C#中..NetFramework4.0的环境下如何将指定文件夹(D:\ErrorLog\abc.txt)中的abc.txt文件生成zip格式的文件,用微软现有的库去实现,不能用到ICSharpZip.....,请各位大侠帮帮忙,有代码示例最好了,谢谢 解决方案