找回密码
 立即注册
查看: 797|回复: 2

PHP静态类

[复制链接]

148

回帖

1687

基友

1073

积分

通神3段 Lv.6

Rank: 3Rank: 3

发表于 2013-7-22 21:11:44 | 显示全部楼层 |阅读模式
[PHP]代码
view source

print?
001        <?php
002        /******************8PHP静态类*************/
003        class Shtml
004        {
005           var $Templet;
006           var $DataSource;
007           var $Dir;
008         
009           var $fileName;
010           var $mod;
011           var $handle;
012         
013           function Shtml($fileName = "")
014           {
015           $this->fileName = $fileName;
016           $this->mod = "wb";
017           $this->handle = false;
018         
019           $this->Templet = "";
020           $this->DataSource = array();
021           $this->Dir = "";
022           }
023         
024           // 绑定数据源,参数为一数组
025           function BindData($arr)
026           {
027           $this->DataSource = $arr;
028           }
029         
030           // 设置文件存放路径
031           function SetDir($dir)
032           {
033           $this->Dir = $dir;
034           }
035           function SetFileName($fileName)
036           {
037           return $this->fileName = $fileName;
038           }
039         
040           function GetMod()
041           {
042           return $this->mod;
043           }
044           function SetMod($mod)
045           {
046           return $this->mod = $mod;
047           }
048           function Open()
049           {
050           if (substr($this->fileName, 0, 1) == "/")
051           $this->fileName = $_SERVER['DOCUMENT_ROOT'] . $this->fileName;
052           if ($this->handle = fopen($this->fileName, $this->mod))
053           return $this->handle;
054           else
055           return false;
056           }
057           function Close()
058           {
059           return fclose($this->handle);
060           }
061           function Write($content)
062           {
063           return fwrite($this->handle, $content);
064           }
065           function MkDir($pathname)
066           {
067           $currentPath = "";
068           str_replace("\\", "/", $pathname);
069           $pathArr = split("/", $pathname);
070           if ($pathArr[0] == "") { //使用绝对路径
071           $currentPath = $_SERVER['DOCUMENT_ROOT'];
072           } else {
073           $currentPath = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']);
074           }
075           for ($i = 0; $i < count($pathArr); $i++) {
076           if ($pathArr[$i] == "")
077           continue;
078           else
079           if (is_dir($currentPath . " / " . $pathArr[$i]))
080           $currentPath = $currentPath . " / " . $pathArr[$i];
081           else
082           mkdir($currentPath = $currentPath . " / " . $pathArr[$i]);
083           }
084           }
085         
086           // 生成静态文件
087           function Create()
088           {
089           $tmp = $this->Templet;
090           foreach ($this->DataSource as $key => $value) {
091           $tmp = str_replace(" < FIELD_" . $key . " > ", $value, $tmp);
092           }
093           $this->MkDir(dirname($this->fileName));
094           $this->Open();
095           $this->Write($tmp);
096           $this->Close();
097           }
098        }
099         
100        function CreateShtml() {
101           ob_start("callback_CteateShtml");
102        }
103         
104        function callback_CteateShtml($buffer) {
105           $page = intval(@$_REQUEST["page"]);
106           $shtml = new Shtml();
107           $shtml->SetFileName($_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'], ".php") . ($page == 0 ? "" : "_" . strval($page)) . ".html");
108           $shtml->Templet = $buffer;
109           $shtml->Create();
110           return $buffer;
111        }
112        ?>
回复

使用道具 举报

59

回帖

156

基友

281

积分

凡人3阶 Lv.3

Rank: 2

发表于 2013-7-25 17:27:00 | 显示全部楼层
淡淡的淡淡的淡淡
回复 支持 反对

使用道具 举报

311

回帖

1641

基友

2700

积分

通神4段 Lv.7

Rank: 4

伯爵荣耀

发表于 2013-7-31 08:55:43 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|苍海国际 ( 鲁ICP备13020644号-1 )

GMT+8, 2024-11-22 07:08 , Processed in 0.107230 second(s), 23 queries .

Powered by Discuz! Theme By eRic Modified by 4bpa

© CangHai International We Do Our Rights!

返回顶部