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的SQL注入实现(测试代码安全不错)
Feb 27 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php代码审计比较有意思的例子
May 07 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php显示时间常用方法小结
Jun 05 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
学习PHP Cookie处理函数
Aug 09 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 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 读取shell管道传输过来的内容
2010/03/01 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
详解node.js 事件循环
2020/07/22 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
社区志愿者培训方案
2014/06/10 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
合作意向协议书
2015/01/29 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
python之基数排序的实现
2021/07/26 Python