PHP静态类

所属分类: 网络编程 / PHP编程 阅读数: 837
收藏 0 赞 0 分享

复制代码 代码如下:
<?php  
class Shtml  
 {  
 var $Templet;  
 var $DataSource;  
 var $Dir;  

 var $fileName;  
 var $mod;  
 var $handle;  

 function Shtml($fileName="")  
 {  
 $this->fileName=$fileName;  
 $this->mod="wb";  
 $this->handle=false;  

 $this->Templet = "";  
 $this->DataSource = array();  
 $this->Dir = "";  
 }  

 /// <描述>  
 /// 绑定数据源,参数为一数组。  
 /// </描述>  
 function BindData($arr)  
 {  
 $this->DataSource = $arr;  
 }  

 /// <描述>  
 /// 设置文件存放路径。  
 /// </描述>  
 function SetDir($dir)  
 {  
 $this->Dir = $dir;  
 }  
 function SetFileName($fileName)  
 {  
 return $this->fileName=$fileName;  
 }  

 function GetMod()  
 {  
 return $this->mod;  
 }  
 function SetMod($mod)  
 {  
 return $this->mod=$mod;  
 }  
 function Open()  
 {  
 if(substr($this->fileName,0,1)=="/")  
 $this->fileName = $_SERVER['DOCUMENT_ROOT'] . $this->fileName;  
 if($this->handle=fopen($this->fileName, $this->mod))  
 return $this->handle;  
 else  
 return false;  
 }  
 function Close()  
 {  
 return fclose($this->handle);  
 }  
 function Write($content)  
 {  
 return fwrite($this->handle,$content);  
 }  
 function MkDir($pathname)  
 {  
 $currentPath="";  
 str_replace("\","/",$pathname);  
 $pathArr = split("/",$pathname);  
 if($pathArr[0] == "") //使用绝对路径  
 {  
 $currentPath = $_SERVER['DOCUMENT_ROOT'];  
 }  
 else  
 {  
 $currentPath = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']);  
 }  
 for($i=0; $i<count($pathArr); $i++)  
 {  
 if($pathArr[$i]=="")  
 continue;  
 else  
 if(is_dir($currentPath . "/" . $pathArr[$i]))  
 $currentPath = $currentPath . "/" . $pathArr[$i];  
 else  
 mkdir($currentPath = $currentPath . "/" . $pathArr[$i]);  
 }  
 }  

 /// <描述>  
 /// 生成静态文件。  
 /// </描述>  
 function Create()  
 {  
 $tmp = $this->Templet;  
 foreach($this->DataSource as $key=>$value)  
 {  
 $tmp = str_replace("<FIELD_" . $key . ">", $value, $tmp);  
 }  
 $this->MkDir(dirname($this->fileName));  
 $this->Open();  
 $this->Write($tmp);  
 $this->Close();  
 }  
 }  

 function CreateShtml()  
 {  
 ob_start("callback_CteateShtml");  
 }  
 function callback_CteateShtml($buffer)  
 {  
 $page = intval(@$_REQUEST["page"]);  
 $shtml = new Shtml();  
 $shtml->SetFileName($_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm");  
 $shtml->Templet = $buffer;  
 $shtml->Create();  
 return $buffer;  
 }  
?>

更多精彩内容其他人还在看

php实现在服务器端调整图片大小的方法

这篇文章主要介绍了php实现在服务器端调整图片大小的方法,实例分析了imageResizer与loadimage操作图片的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php动态绑定变量的用法

这篇文章主要介绍了php动态绑定变量的用法,涉及php变量的判定与动态定义的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php实现读取和写入tab分割的文件

这篇文章主要介绍了php实现读取和写入tab分割的文件,涉及php文件读写及字符串操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php正则preg_replace_callback函数用法实例

这篇文章主要介绍了php正则preg_replace_callback函数用法,实例分析了preg_replace_callback函数进行正则替换的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php将字符串随机分割成不同长度数组的方法

这篇文章主要介绍了php将字符串随机分割成不同长度数组的方法,涉及随机数及字符串操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php自动给网址加上链接的方法

这篇文章主要介绍了php自动给网址加上链接的方法,可实现对本文中的网址加上链接的功能,涉及正则匹配的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php使用socket post数据到其它web服务器的方法

这篇文章主要介绍了php使用socket post数据到其它web服务器的方法,涉及php使用socket传输数据的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP使用递归方式列出当前目录下所有文件的方法

这篇文章主要介绍了PHP使用递归方式列出当前目录下所有文件的方法,涉及php递归操作文件的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php获取指定范围内最接近数的方法

这篇文章主要介绍了php获取指定范围内最接近数的方法,可实现根据给定区间长度划分各个区间,并在其中寻找与给定数最接近的数,需要的朋友可以参考下
收藏 0 赞 0 分享

php使用ob_flush不能每隔一秒输出原理分析

这篇文章主要介绍了php使用ob_flush不能每隔一秒输出原理,较为详细的分析了php使用ob_flush的相关原理与Linux下使用cli方式的使用方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多