ホームページ  >  記事  >  バックエンド開発  >  PHPの静的クラス

PHPの静的クラス

WBOY
WBOYオリジナル
2016-06-23 14:30:191492ブラウズ

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

 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。