PHP生成静态页HTML的文件类

PHP生成静态的HTML、htm格式,SHTML也是静态文件,只不过它可以执行服务器端的include命令,下面来看这个生态静态类代码。

PHP生成静态页HTML的文件类

<?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;
}
?>

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...