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 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
PHP+MYSQL的文章管理系统(二)
Oct 09 PHP
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
对javascript和select部件的结合运用
Oct 09 PHP
echo(),print(),print_r()之间的区别?
Nov 19 PHP
有关PHP性能优化的介绍
Jun 20 PHP
php中的比较运算符详解
Oct 28 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
Augularjs-起步详解
2016/07/08 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
学习决心书
2014/03/11 职场文书
国庆节演讲稿
2014/05/27 职场文书
消防标语大全
2014/06/07 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python