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 相关文章推荐
使用eAccelerator加密PHP程序
Oct 03 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
php+mysql实现无限级分类
Nov 11 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
python用户管理系统的实例讲解
2017/12/23 Python
python计算两个数的百分比方法
2018/06/29 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
详解Python的三种可变参数
2019/05/08 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
职代会闭幕词
2015/01/28 职场文书
体育个人工作总结
2015/02/09 职场文书
创业计划书之面包店
2019/09/12 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android