php静态化类

WBOY
WBOYOriginal
2016-06-23 14:30:191528Durchsuche

一、静态化类
复制以下代码,存为文件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 ?>

 

二、使用方法
复制以下代码,存为一个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 ?>

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php 发送邮件Nächster Artikel:php array函数们