生成静态html的一个PHP类

PHPABC PHP开发 624 次浏览 , , 没有评论

一个生成纯静态html类,具体看代码

<?php
/**
 * Name: WriteCache
 * Author: Jeff Jing
 * Description: A class for Write cache to html
 * DateTime: 2009-09-26 16:33:06
 * Version: 1.0.0
 */
# 配置参数

$configArr=array();
$configArr['leftDilimiter']='<{';
$configArr['rightDilimiter']='}>';
$configArr['dir']='./html/';
 
class statiker{
 private $content;
 private $config;
 public function __construct($tpl){ // 构造参数为模板文件
 
  global $configArr;
  $this->config=$configArr;
  $this->content= file_get_contents ($tpl);
  $this->clearSpace();
  //var_dump($this->content);
 
 }
 private function clearSpace(){
     /**@ 去掉分隔符与数据之间的空格
   */
  while(strpos($this->content,' '.$this->config['rightDilimiter'])!==false && strpos($this->content,$this->config['leftDilimiter'].' ')!==false){
   $this->content=str_replace(' '.$this->config['rightDilimiter'],$this->config['rightDilimiter'],$this->content);
   $this->content=str_replace($this->config['lefDilimiter'].' ',$this->config['rightDilimiter'],$this->content);
  }
 }
 public function replace($src,$des){
     /**@ 将模板中的变量替换
   * @param $src: 模板中的变量
   * @param $des: 要替换的变量
     主要供内部调用,不建议直接使用
   */
  $this->content=str_replace($src,$des,$this->content);
 }
 public function writeData($name,$data){
     /**@ 将实际的变量替换
   * @param $name: 模板中的变量
   * @param $data: 要替换的变量,可以是一维数组,暂不支持二维数组
   */
  if(is_array($data)){
   foreach($data as $key=>$value){
    $src=$this->config['leftDilimiter'].'$'.$name.'.'.$key.$this->config['rightDilimiter'];
    $this->replace($src,$value);
   }
  }
  if(is_numeric($data) || is_string($data)){
   $src=$this->config['leftDilimiter'].'$'.$name.$this->config['rightDilimiter'];
   $this->replace($src,$data);
  }
 }
 public function show($html){
     /**@ 将模板写入文件
   * @param $html: 将缓存写入文件
   */
  $cachedir = $this->config['dir'];
  $cachefile = $cachedir.$html;
  //echo $cachefile;
 
  if(!is_dir($cachedir)) {
   @mkdir($cachedir, 0777);
  }
  if(file_exists($cachefile)){ // 如果文件已存在,先将文件删除
 
     unlink($cachefile);
  }
  var_dump($html);
  if(@$fp = fopen($cachefile, 'w')) {
   @fwrite($fp, "<!-- created by /writeHtml.php \r\n Date: ".date("Y-m-d h:i:s")." -->\n".$this->content);
   @fclose($fp);
   @chmod($cachefile, 0777);
  } else {
   echo 'Can not write file Pls check the directory '.$configArr['dir'];
   exit;
  }
 }
 
}
?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go