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 相关文章推荐
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
php判断是否为json格式的方法
Mar 04 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
PHP生成短网址方法汇总
Jul 12 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP 记录访客的浏览信息方法
Jan 29 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHPMyAdmin 快速配置方法
2009/05/11 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP连接access数据库
2015/03/27 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
实现高性能javascript的注意事项
2019/05/27 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
Python深入学习之内存管理
2014/08/31 Python
Python可跨平台实现获取按键的方法
2015/03/05 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
比较一下entity bean和session bean
2013/12/27 面试题
高级工程师岗位职责
2013/12/15 职场文书
应届护士求职信范文
2014/01/26 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
主婚人致辞精选
2015/07/28 职场文书
nginx优化的六点方法
2021/03/31 Servers
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技