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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 PHP
php 获取可变函数参数的函数
Aug 26 PHP
国外PHP程序员的13个好习惯小结
Feb 20 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php源码的安装方法和实例
2019/09/26 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python3 shelve模块的详解
2017/07/08 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
wxPython实现带颜色的进度条
2019/11/19 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
工作中的自我评价如何写好
2013/10/28 职场文书
公司捐款倡议书
2014/05/14 职场文书
环保公益策划方案
2014/08/15 职场文书
离婚被告代理词
2015/05/23 职场文书
地球上的星星观后感
2015/06/02 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python
mysql幻读详解实例以及解决办法
2022/06/16 MySQL