时间:2021-07-01 10:21:17 帮助过:1人阅读
1 输出的内容生成静态文件,还有替换指定标签功能10 * method of use: 至少传递三个参数$buffer,$filename,$filepath11 * example:12 */13 class Shtml14 {15 function Shtml()16 {17 $this->Templet = "";18 $this->DataSource = array(); 19 $this->fileName = "";20 $this->mod = "wb";21 $this->handle = false;22 }23 //绑定数据源,参数为一数组24 function BindData($arr)25 {26 $this->DataSource = $arr;27 }28 //设置路径及文件名29 function SetFileName($fileName)30 {31 return $this->fileName = $fileName;32 }33 function Open()34 {35 if ($this->handle = fopen($this->fileName, $this->mod))36 return $this->handle;37 else38 return false;39 }40 function Close()41 {42 return fclose($this->handle);43 }44 function Write($content)45 {46 return fwrite($this->handle, $content);47 }48 //建立目录,支持绝对路径与相对路径,相对路径相对于当前脚本。linux下注意要有权限49 function MkDir($pathname)50 {51 if($pathname){52 str_replace("\\", "/", $pathname);53 if(!file_exists($pathname)){54 if(!@mkdir($pathname,0777)){55 echo "建立文件夹失败";56 exit;57 }58 }59 }else{60 return false;61 }62 }63 // 生成静态文件64 function Create()65 {66 $tmp = $this->Templet;67 foreach ($this->DataSource as $key => $value) {68 $tmp = str_replace( $key , $value, $tmp);69 }70 $this->MkDir(dirname($this->fileName));71 $this->Open();72 $this->Write($tmp);73 $this->Close();74 }75 }76 ?>
二、使用方法
复制以下代码,存为一个php文件,如test.php
1 "a","3"=>"c");//标签替换规则12 CreateShtml($buffer,$filename,$filepath,$arr);13 }14 function CreateShtml($buffer,$filename,$filepath,$arr=array()) {15 $shtml = new Shtml();16 $shtml->SetFileName($filepath.$filename);17 $shtml->Templet = $buffer;18 $shtml->BindData($arr);19 $shtml->Create();20 }21 ?>