一般に、PHP を使用して HTML ファイルを出力する場合、常に $head="<head>...</head>" のような長い文字列を使用して完成させます。このクラスは主に、PHP を使用して HTML ファイルを出力する簡単なメソッドを提供します。プログラム内に長い文字列が多すぎることは避けてください。
クラス定義ファイル createhtml.class.php は次のとおりです:
<?php
//----------------------
//TCreateHTML
//テンプレートファイルに基づいて静的HTMLファイルクラスを生成
// 作成者: シェアトップ
// メール:[email protected]
//----------------------
//*****必要な仕事関数を定義する
//規則はタグ <!--##name##--> で始まります
//タグ < !--@@name @@--> で終了
関数 isbegin($str){
$pattern="<!--##[a-zA-Z]+##-->";
if(ereg($pattern,$str)) は true を返します。
false を返します。
}
関数 isfinish($str){
$pattern="< !--@@[a-zA-Z ]+@@-->";
if(ereg($pattern,$str)) は true を返します。
false を返します。
}
関数 getname($str){
$tmp=explode("##",$str);
$tmp[1] を返します;
}
//******************
//************定義クラス
クラス TCreateHTML {
var $HTemplate;
var $ファイル名;
var $ModiString;
//********インターフェース関数
//テンプレートを構築する
関数 TCreateHTML($tmplate){
$this->HTemplate=$tmplate;
}
//出力ファイル名を設定する
関数 SetHTML($filename){
$this->ファイル名=$ファイル名;
}
//タグの名前と対応する置換文字列を設定します
function EditableBlock($name,$replace){
$this->ModiString[$name]=$replace;
}
//HTMLファイルを書き込む
関数 WriteHtml(){
$fc=file($this->HTemplate);
$fp=fopen($this->ファイル名,"w");
$k=カウント($fc);
$begin=false;
$first=false;
$tag="";
for($i=0;$i<$k;$i++){
if(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="";
続く;
}
if($begin==true){
if($first==true) {
$fc[$i]=$this->ModiString[$tag]." ";
$first=false;
}
それ以外の場合は $fc[$i]="";
}
fputs($fp,$fc[$i]);
}
fclose($fp);
}
//----------クラス終了
}
?>
例は次のとおりです。
(
まず html 形式のファイルを作成し、置き換えたい場所にマーク <!--aaa--> を追加します
。 注!! この文は別の行にあります...
< !--@@aaa @@--> 注意! !この文は別の行に置く必要があります。など)
<?
"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();
?>