Home > Backend Development > PHP Tutorial > php静态化类

php静态化类

WBOY
Release: 2016-06-23 14:30:19
Original
1526 people have browsed it

一、静态化类
复制以下代码,存为文件static.class.php

 1 <?php 2 /** 3 * filename:      static.class.php 4 * @author:       phpwk http://www.55nav.com 5 * @copyright:    Copyright 2011 phpwk 6 * @license:      version 1.0 7 * @create:       2011-11-22 8 * @modify:       phpwk 2011-11-23 9 * description:   静态类,可以将php输出的内容生成静态文件,还有替换指定标签功能10 * method of use: 至少传递三个参数$buffer,$filename,$filepath11 * example:12 */13 class Shtml14 {15     function Shtml()16     {17         $this->Templet      = "";18         $this->DataSource   = array();    19         $this->fileName     = "";20         $this->mod          = "wb";21         $this->handle       = false;22     }23     //绑定数据源,参数为一数组24     function BindData($arr)25     {26         $this->DataSource = $arr;27     }28     //设置路径及文件名29     function SetFileName($fileName)30     {31         return $this->fileName = $fileName;32     }33     function Open()34     {35         if ($this->handle = fopen($this->fileName, $this->mod))36             return $this->handle;37         else38             return false;39     }40     function Close()41     {42         return fclose($this->handle);43     }44     function Write($content)45     {46         return fwrite($this->handle, $content);47     }48     //建立目录,支持绝对路径与相对路径,相对路径相对于当前脚本。linux下注意要有权限49     function MkDir($pathname)50     {51         if($pathname){52             str_replace("\\", "/", $pathname);53             if(!file_exists($pathname)){54                 if(!@mkdir($pathname,0777)){55                     echo "建立文件夹失败";56                     exit;57                 }58             }59         }else{60             return false;61         }62     }63     // 生成静态文件64     function Create()65     {66         $tmp = $this->Templet;67         foreach ($this->DataSource as $key => $value) {68             $tmp = str_replace( $key , $value, $tmp);69         }70         $this->MkDir(dirname($this->fileName));71         $this->Open();72         $this->Write($tmp);73         $this->Close();74     }75 }76 ?>
Copy after login

二、使用方法
复制以下代码,存为一个php文件,如test.php

 1 <?php 2 include("static.class.php"); 3 for($i=0;$i<10;$i++){ 4     ob_start(); 5     echo "1234567890".$i;//要生成静态页面的内容 6     $buffer=ob_get_contents(); 7     ob_end_clean(); 8     $filename=$i.".html"; 9     //$filepath=$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/a/";//绝对路径10     $filepath="../a/";//相对路径11     $arr=array("1"=>"a","3"=>"c");//标签替换规则12     CreateShtml($buffer,$filename,$filepath,$arr);13 }14 function CreateShtml($buffer,$filename,$filepath,$arr=array()) {15     $shtml = new Shtml();16     $shtml->SetFileName($filepath.$filename);17     $shtml->Templet = $buffer;18     $shtml->BindData($arr);19     $shtml->Create();20 }21 ?>
Copy after login

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template