一般に、PHP を使用して HTML ファイルを出力するときは、常に $head="
クラス定義ファイルcreatehtml.class.phpは以下の通りです:
//--------------------------------
//TCreateHTML
//次のクラステンプレート ファイルに基づいて静的 HTML ファイルを生成します
// 著者: sharetop
// email:ycshowtop@21cn.com
//--------
/ /*****必要な作業関数を定義します
// を先頭としてマークするための規則
// マーク
関数 isbegin($str){
$pattern= "";
if(ereg($pattern,$) str)) true を返す;
return false;
}
関数 isfinish($ str){
$pattern="";
if (ereg($pattern,$str)) true を返す;
false を返す
}
function getname($str){
$tmp=explode("##",$str);
return $tmp[1];
}
//************ ******
//************定義クラス
class TCreateHTML {
var $HTemplate;
var $FileName;
var $ModiString;
//********インターフェイス関数
//テンプレートを構築します
関数 TCreateHTML($tmplate){
$this->HTemplate=$tmplate;
}
//出力ファイル名を設定します
function SetHTML($filename){
$this->FileName=$ filename;
}
//タグの名前と対応する置換文字列を設定します
function EditableBlock($name,$ replace){
$this->ModiString[$name]=$replace;
}
//HTML ファイルの書き込み
function WriteHtml(){
$fc=file($this->HTemplate);
$fp= fopen($this->FileName,"w");
$k=count($fc);
$begin=false;
$first=false;
$tag="";
for($i=0 ;$iif(isbegin($fc[$i])){
fputs($fp,$fc[$i]);
$begin=true;
$first=true ;
$tag=getname($fc[$i]);
続ける;
}
if(isfinish( $fc[$i])){
fputs($fp,$fc[$i]);
$ begin=false;
$first=false;
$tag="";
Continue;
}
if( $begin==true){
if($first==true) {
$fc[$i]= $this->ModiString[$tag]." ";
$first=false;
}
else $ fc[$i]="";
}
fputs($fp,$fc[$i]);
}
fclose($fp);
}
//--------クラス終了
}
?>
例は次のとおりです:
(
まずhtml形式のファイルを作成し、置換したい箇所にマークを追加します
注意! !この文は別の行にあります
………
注意! !この文は別の行にあります
etc
)
require "createhtml.class.php";
$chtml=new TCreateHTML("template.htm");
$chtml->SetHTML("news.htm");
$chtml->EditableBlock ("aaa","11aa111aa");
$chtml->EditableBlock("bbb","11bbb122bb");
$chtml->EditableBlock("ccc","11cc333cc");
$chtml-> WriteHtml();
?>