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 相关文章推荐
图书管理程序(一)
Oct 09 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
解析php php_openssl.dll的作用
Jul 01 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
php文件管理基本功能简单操作
Jan 16 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 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
超级简单的发送邮件程序
2006/10/09 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
详解python持久化文件读写
2019/04/06 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
python实现快递价格查询系统
2020/03/03 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
自我鉴定的范文
2013/10/03 职场文书
职工趣味运动会方案
2014/02/10 职场文书
境外导游求职信
2014/02/27 职场文书
个人工作表现评价材料
2014/09/21 职场文书
泰山导游词
2015/02/02 职场文书
施工员岗位职责
2015/02/10 职场文书
党员转正申请报告
2015/05/15 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android