欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP静态类

程序员文章站 2024-02-02 14:38:04
...
class Shtml
{
var $Templet ;
var $DataSource ;
var $Dir ;

var $fileName ;
var $mod ;
var $handle ;

function Shtml ( $fileName = "" )
{
$this -> fileName = $fileName ;
$this -> mod = " wb " ;
$this -> handle = false ;

$this -> Templet = "" ;
$this -> DataSource = array () ;
$this -> Dir = "" ;
}

// 绑定数据源,参数为一数组
function BindData ( $arr )
{
$this -> DataSource = $arr ;
}

// 设置文件存放路径
function SetDir ( $dir )
{
$this -> Dir = $dir ;
}
function SetFileName ( $fileName )
{
return $this -> fileName = $fileName ;
}

function GetMod ()
{
return $this -> mod ;
}
function SetMod ( $mod )
{
return $this -> mod = $mod ;
}
function Open ()
{
if ( substr ( $this -> fileName , 0 , 1 ) == " / " )
$this -> fileName = $_SERVER [ ' DOCUMENT_ROOT ' ] . $this -> fileName ;
if ( $this -> handle = fopen ( $this -> fileName , $this -> mod ))
return $this -> handle ;
else
return false ;
}
function Close ()
{
return fclose ( $this -> handle ) ;
}
function Write ( $content )
{
return fwrite ( $this -> handle , $content ) ;
}
function MkDir ( $pathname )
{
$currentPath = "" ;
str_replace ( " \\ " , " / " , $pathname ) ;
$pathArr = split ( " / " , $pathname ) ;
if ( $pathArr [ 0 ] == "" ) { //使用绝对路径
$currentPath = $_SERVER [ ' DOCUMENT_ROOT ' ] ;
} else {
$currentPath = $_SERVER [ ' DOCUMENT_ROOT ' ] . dirname ( $_SERVER [ ' PHP_SELF ' ]) ;
}
for ( $i = 0 ; $i if ( $pathArr [ $i ] == "" )
continue ;
else
if ( is_dir ( $currentPath . " / " . $pathArr [ $i ]))
$currentPath = $currentPath . " / " . $pathArr [ $i ] ;
else
mkdir ( $currentPath = $currentPath . " / " . $pathArr [ $i ]) ;
}
}

// 生成静态文件
function Create ()
{
$tmp = $this -> Templet ;
foreach ( $this -> DataSource as $key => $value ) {
$tmp = str_replace ( " " , $value , $tmp ) ;
}
$this -> MkDir ( dirname ( $this -> fileName )) ;
$this -> Open () ;
$this -> Write ( $tmp ) ;
$this -> Close () ;
}
}

function CreateShtml () {
ob_start ( " callback_CteateShtml " ) ;
}

function callback_CteateShtml ( $buffer ) {
$page = intval ( @ $_REQUEST [ " page " ]) ;
$shtml = new Shtml () ;
$shtml -> SetFileName ( $_SERVER [ ' DOCUMENT_ROOT ' ] . dirname ( $_SERVER [ ' PHP_SELF ' ]) . " / " . basename ( $_SERVER [ ' PHP_SELF ' ] , " .php " ) . ( $page == 0 ? "" : " _ " . strval ( $page )) . " .html " ) ;
$shtml -> Templet = $buffer ;
$shtml -> Create () ;
return $buffer ;
}
?>
相关标签: PHP静态类