1、
2、filename="test.html"; //生成页 $foot="../foot.html"; //包含的底文件,头文件同理 $arr=array(); $arr["{title}"]="新标题"; $arr["{text}"]="新内容"; $arr["{foot}"]=$sc->readHtml($foot); $sc->templateHtml($tmp,$filename,$arr); */ class template { var $temp; //读取的模板页文件名(
3、包含路径) var $html; //要生成的html文件名(包含路径) var $err; //错误编号 var $test; //数据流 var $arr; //要替换的数组 模式(键名->模板标签 , 键值->替换内容) function template() { $this->temp=""; $this->html=""; $this->err=0
4、 $this->test=""; } function templateHtml($temp,$html,$arr) { $err=$this->chkFile($temp); if((int)$err==0) { $fp=fopen($temp,"r"); //只读方式打开模板页 $test=fread($fp,filesize($temp)); //读取模板页的数据流
5、 $test=$this->arr_replace($arr,$test); //替换文件 $err=$this->writefile($html,$test); //生成静态页 } echo "由模板页 ".$temp." 生成 ".$html.$this->error($err); return; } /* *判断文件是否存在 *返回错误提示 */ function chkFile($file) { if (file_exist
6、s($file)) { return 0; } return 1; } /* *根据数组文件内容,替换数据流 模式(键名->模板标签 , 键值->替换内容) *返回数据流 *参数$arr:数组 *参数$test :数据流 */ function arr_replace($arr,$test) { $ss=$test; foreach ($arr as $key => $value) { $ss= str_replace($key,$value,$ss); } re
7、turn $ss; } /* *将数据流,写入到文件中 *返回执行状态 *参数$html:要生成的html文件 *参数$test :数据流 */ function writefile($html,$test) { $stat=2; if($this->chkFile($html)==0) //判断文件是否存在 { $stat=0; //已经存在返回0 } if($f=fopen($html,"w")) //
8、写入方式打开文件,不存在则创建 { fputs($f,$test); fclose($f); $stat=0; //写入成功返回0 } else { $stat=2; //写入失败返回2 } return $stat; } /* *错误提示 *返回错误提示 *参数$err:错误编号 *参数$file :错误文件 */ function error($err) { $message="
9、"; switch((int)$err) { case 0 : $message=" 静态页生成成功"; break; case 1 : $message=" 模板页打开失败,请检查是否存在"; break; case 2 : $message=" 文件生成失败,请检查目录权限"; break; default: $message=" 未知错误"; } return $message; } /* * *主要用来读取模板页,返回数据流 (比如top,foot公用文件,) *参数$file :模板页路径
10、 */ function readHtml($file) { $test=""; $err=$this->chkFile($file); if($err==0) { $fp=fopen($file,"r"); //只读方式打开模板页 $test=fread($fp,filesize($file)); //读取模板页的数据流 } else { $test=$file.$this->error($err); }
11、 return $test; } /* * *主要用来删除已生成的文件,不返回 *参数$file :文件路径 */ function delete_file($file) { if (file_exists($file)) { $delete = chmod ($file, 0777); $delete = unlink($file); if(file_exists($file)) { $filesys = eregi
12、replace("/","\\",$file); $delete = system("del $filesys"); clearstatcache(); if(file_exists($file)) { $delete = chmod ($file, 0777); $delete = unlink($file); $delete = system("del $filesys"); } } clearstatcache(); } } } ?>






