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简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
php操作access数据库的方法详解
Feb 22 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python内置函数dir详解
2015/04/14 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
通过python检测字符串的字母
2020/02/18 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
python中setuptools的作用是什么
2020/06/19 Python
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
企业内控岗位的职责
2014/02/07 职场文书
聘用意向书
2014/07/29 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
武侯祠导游词
2015/02/04 职场文书
个人思想政治总结
2015/03/05 职场文书
oracle索引总结
2021/09/25 Oracle
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫