dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>PHP>文章内容
PHP静态类
来源: 作者:
<?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)) . ".html");
    
$shtml->Templet = $buffer;
    
$shtml->Create();
    
return $buffer;
}
?>

上一篇:生成静态页面的PHP类   下一篇:JBPM工作流引擎内核设计思想及构架1
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·php开发
·通过对PHP服务器端特性的配置加
·php与mysql三日通
·大家所使用的PHP开发环境
·PHP缓存的实现
·针对PHP新手总结的PHP基础知识
·一个简单实现多条件查询的例子
·PHP串行化变量和序列化对象
·PHP表单
·推荐阅读:php技术生成静态页面
·用C语言写PHP扩展的步骤
·用C语言扩展PHP功能
  相关文章
·生成静态页面的PHP类
·php的缓存类
·apachectl - Apache HTTP服务器
·用php5的simplexml解析各种feed
·PHP6安装方法
·Windows 2008之IIS 7下PHP部署攻
·PHP程序不实用大型系统的九大原
·实例解析:PHP程序开发中的中文
·编程大师论道:PHP的魅力和不足何
·帮助跟我一样的小鸟理解MVC
·网站的设计步骤
·Ajax+PHP简单入门教程
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763