会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 程序设计类 / 其他程序 / [PHP]一个自动生成HTML的类
[PHP]一个自动生成HTML的类
2004-11-22       www.xon.cn    点击:
[PHP]一个自动生成HTML的类

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;

    }

 

演示:

<?
include("include.php");
CreateShtml();

?>
asdfsadfasdfasdfjlkasdfjlksdf
asdfsadfjhsdjlkfsd
asdfjosdfjksdf

 

 

付上一个不用类的

function CreateShtml()

    {

        
ob_start("callback_CteateShtml");

    }

    function
callback_CteateShtml($buffer)

    {

        
$page = intval(@$_REQUEST["page"]);

        
$fileName = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm";

        
$fp = fopen($fileName,"wb");

        
fwrite($fp,$buffer);

        
fclose($fp);

        return
$buffer;

    }

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
Linux 自带防火墙 Iptables 基本配置 - 12-31 08:41 pm - 点击: 794
Iptables 中文 man 文档 - 12-07 11:16 am - 点击: 202
给网吧使用的Nat+Iptables+Squid的脚本 - 08-03 10:34 pm - 点击: 1062
用IPTABLES+SQUID实现透明代理和防火墙 - 07-29 10:50 pm - 点击: 1927

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.