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 checkbox 取值详细说明
Aug 19 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
详解php协程知识点
Sep 21 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 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
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
jQuery技巧总结
2011/01/01 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python实现换位加密算法的示例
2018/10/14 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python Selenium参数配置方法解析
2020/01/19 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
化工专业自荐书
2014/06/16 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技