[PHP]代码
view source
print?
001 |
<?php |
002 |
/******************8PHP静态类*************/ |
003 |
class Shtml
|
004 |
{ |
005 |
var $Templet ;
|
006 |
var $DataSource ;
|
007 |
var $Dir ;
|
008 |
|
009 |
var $fileName ;
|
010 |
var $mod ;
|
011 |
var $handle ;
|
012 |
|
013 |
function Shtml( $fileName = "" )
|
014 |
{
|
015 |
$this ->fileName = $fileName ;
|
016 |
$this ->mod = "wb" ;
|
017 |
$this ->handle = false;
|
018 |
|
019 |
$this ->Templet = "" ;
|
020 |
$this ->DataSource = array ();
|
021 |
$this ->Dir = "" ;
|
022 |
}
|
023 |
|
024 |
// 绑定数据源,参数为一数组
|
025 |
function BindData( $arr )
|
026 |
{
|
027 |
$this ->DataSource = $arr ;
|
028 |
}
|
029 |
|
030 |
// 设置文件存放路径
|
031 |
function SetDir( $dir )
|
032 |
{
|
033 |
$this ->Dir = $dir ;
|
034 |
}
|
035 |
function SetFileName( $fileName )
|
036 |
{
|
037 |
return $this ->fileName = $fileName ;
|
038 |
}
|
039 |
|
040 |
function GetMod()
|
041 |
{
|
042 |
return $this ->mod;
|
043 |
}
|
044 |
function SetMod( $mod )
|
045 |
{
|
046 |
return $this ->mod = $mod ;
|
047 |
}
|
048 |
function Open()
|
049 |
{
|
050 |
if ( substr ( $this ->fileName, 0, 1) == "/" )
|
051 |
$this ->fileName = $_SERVER [ 'DOCUMENT_ROOT' ] . $this ->fileName;
|
052 |
if ( $this ->handle = fopen ( $this ->fileName, $this ->mod))
|
053 |
return $this ->handle;
|
054 |
else
|
055 |
return false;
|
056 |
}
|
057 |
function Close()
|
058 |
{
|
059 |
return fclose( $this ->handle);
|
060 |
}
|
061 |
function Write( $content )
|
062 |
{
|
063 |
return fwrite( $this ->handle, $content );
|
064 |
}
|
065 |
function MkDir ( $pathname )
|
066 |
{
|
067 |
$currentPath = "" ;
|
068 |
str_replace ( "" , "/" , $pathname );
|
069 |
$pathArr = split( "/" , $pathname );
|
070 |
if ( $pathArr [0] == "" ) { //使用绝对路径
|
071 |
$currentPath = $_SERVER [ 'DOCUMENT_ROOT' ];
|
072 |
} else {
|
073 |
$currentPath = $_SERVER [ 'DOCUMENT_ROOT' ] . dirname( $_SERVER [ 'PHP_SELF' ]);
|
074 |
}
|
075 |
for ( $i = 0; $i < count ( $pathArr ); $i ++) {
|
076 |
if ( $pathArr [ $i ] == "" )
|
077 |
continue ;
|
078 |
else
|
079 |
if ( is_dir ( $currentPath . " / " . $pathArr [ $i ]))
|
080 |
$currentPath = $currentPath . " / " . $pathArr [ $i ];
|
081 |
else
|
082 |
mkdir ( $currentPath = $currentPath . " / " . $pathArr [ $i ]);
|
083 |
}
|
084 |
}
|
085 |
|
086 |
// 生成静态文件
|
087 |
function Create()
|
088 |
{
|
089 |
$tmp = $this ->Templet;
|
090 |
foreach ( $this ->DataSource as $key => $value ) {
|
091 |
$tmp = str_replace ( " < FIELD_" . $key . " > " , $value , $tmp );
|
092 |
}
|
093 |
$this -> MkDir (dirname( $this ->fileName));
|
094 |
$this ->Open();
|
095 |
$this ->Write( $tmp );
|
096 |
$this ->Close();
|
097 |
}
|
098 |
} |
099 |
|
100 |
function CreateShtml() {
|
101 |
ob_start( "callback_CteateShtml" );
|
102 |
} |
103 |
|
104 |
function callback_CteateShtml( $buffer ) {
|
105 |
$page = intval (@ $_REQUEST [ "page" ]);
|
106 |
$shtml = new Shtml();
|
107 |
$shtml ->SetFileName( $_SERVER [ 'DOCUMENT_ROOT' ] . dirname( $_SERVER [ 'PHP_SELF' ]) . "/" . basename ( $_SERVER [ 'PHP_SELF' ], ".php" ) . ( $page == 0 ? "" : "_" . strval ( $page )) . ".html" );
|
108 |
$shtml ->Templet = $buffer ;
|
109 |
$shtml ->Create();
|
110 |
return $buffer ;
|
111 |
} |
112 |
?> |
时间: 2024-10-02 15:27:29