PHP静态类


Posted in PHP onNovember 25, 2006
<?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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
如何写php程序?
Dec 08 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
Apr 12 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
php不用正则验证真假身份证
Nov 06 PHP
PHP遍历文件夹与文件类及处理类用法实例
Sep 23 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
php日期操作技巧小结
Jun 25 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
PHP文本操作类
Nov 25 #PHP
小偷PHP+Html+缓存
Nov 25 #PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 #PHP
如何使用PHP中的字符串函数
Nov 24 #PHP
PHP常用代码
Nov 23 #PHP
给初学PHP的5个入手程序
Nov 23 #PHP
PHP中的日期及时间
Nov 23 #PHP
You might like
PHP安全编程之加密功能
2006/10/09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP数据过滤的方法
2013/10/30 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python reverse反转部分数组的实例
2018/12/13 Python
python代码能做成软件吗
2020/07/24 Python
python时间time模块处理大全
2020/10/25 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
运动会通讯稿200字
2014/02/16 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
地方白酒代理协议书
2014/10/25 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android