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 时间计算问题小结
Jan 04 PHP
php xml文件操作代码(一)
Mar 20 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
Jun 12 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 PHP
PHP实现权限管理功能示例
Sep 22 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
在php MYSQL中插入当前时间
2008/04/06 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
js的event详解。
2006/09/06 Javascript
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
优秀少先队辅导员事迹材料
2014/12/24 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
七个非常实用的Python工具包总结
2021/06/15 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技