> 백엔드 개발 > PHP 튜토리얼 > php静态化类

php静态化类

WBOY
풀어 주다: 2016-06-23 14:30:19
원래의
1518명이 탐색했습니다.

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

 

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿