php什么是静态类,三.PHP静态类

3.PHP静态类

/******************8PHP静态类*************/

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;

}

?>

/*

举个例

把上面的代码保存为 static.php

执行下面页面 phpfans.php

include("static.php");

CreateShtml();

?>

无标题文档

echo "flash动漫设计,http://www.flashdongman.com";

?>

将会生成一个 phpfans.html的静态页面

如果有参数,则用page来传递 如 phpfans.php?page=1

则生成 phpfans_1.html的静态页面

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值