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下的权限算法的实现
Apr 28 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP中COOKIES使用示例
Jul 26 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
微信支付之JSAPI公众号支付详解
May 15 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读取csv文件内容的详解
2013/06/18 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
Python如何实现文本转语音
2016/08/08 Python
python安装Scrapy图文教程
2017/08/14 Python
python numpy格式化打印的实例
2018/05/14 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
技术岗位竞聘演讲稿
2014/05/16 职场文书
党员自我对照检查材料
2014/08/19 职场文书
学生会个人总结范文
2015/02/15 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书