作者:桔梗的坚守 | 来源:互联网 | 2014-03-27 01:17
php生成静态html文件的好处相信做过网站的人都知道,它能大大提高服务器的负载能力,下面就来看看php生成静态html文件原理:<?phpob_start();include_on
php生成静态html文件的好处相信做过网站的人都知道,它能大大提高服务器的负载能力,下面就来看看php生成静态html文件原理:
这个例子的作用就是将index.php转化成index.html,需要注意的是目录的权限,还有待转化的文件不能有ob_start()和ob_end_clean()。
下面提供一个php生成静态html文件类:
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 Templet;
foreach ($this->DataSource as $key => $value) {
$tmp = str_replace(" ", $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;
}
?>