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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
PHP递归统计系统中代码行数
Sep 19 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
thinkphp实现数组分页示例
2014/04/13 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
event.srcElement+表格应用
2006/08/29 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
python中的for循环
2018/09/28 Python
python各类经纬度转换的实例代码
2019/08/08 Python
pygame实现成语填空游戏
2019/10/29 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Python如何输出百分比
2020/07/31 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
个人收入证明格式
2015/06/24 职场文书
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
postgresql中如何执行sql文件
2023/05/08 PostgreSQL