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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
laravel开发环境homestead搭建过程详解
Jul 03 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/04/09 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
商务英语毕业生自荐信范文
2013/11/08 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书