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面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
php数字转汉字代码(算法)
Oct 08 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
php微信公众号开发之二级菜单
Oct 20 PHP
laravel-admin自动生成模块,及相关基础配置方法
Oct 08 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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
discuz7 phpMysql操作类
2009/06/21 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
EsLint入门学习教程
2017/02/17 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
小程序云开发实战小结
2018/10/25 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
学前教育毕业生自荐信范文
2013/12/24 职场文书
关于毕业的广播稿
2014/01/10 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
幼师求职自荐信
2014/05/31 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
项目备案申请报告
2015/05/15 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏