Geralmente, quando usamos PHP para gerar um arquivo html, sempre usamos uma string longa como $head="<head>...</head>" para completar. Esta classe fornece principalmente um método simples para gerar arquivos HTML usando PHP. Evite muitas strings longas no programa.
O arquivo de definição de classe createhtml.class.php é o seguinte:
<?php
//------------------
//TCreateHTML
//Gera uma classe de arquivo HTML estático com base no arquivo de modelo
// Autor: sharetop
//e-mail:[email protected]
//------------------
//*****Defina a função de trabalho necessária
//A convenção começa com a tag <!--##name##-->
//Termina com tag < !--@@nome @@-->
função isbegin($str){
$pattern="<!--##[a-zA-Z]+##-->";
if(ereg($padrão,$str)) retorna verdadeiro;
retornar falso;
}
função isfinish($str){
$pattern="< !--@@[a-zA-Z ]+@@-->";
if(ereg($padrão,$str)) retorna verdadeiro;
retornar falso;
}
função getnome($str){
$tmp=explodir("##",$str);
retornar $tmp[1];
}
//******************
//************Classe de definição
classe TCreateHTML {
var $HTemplate;
var $NomeArquivo;
var $ModiString;
//********função de interface
//Construir modelo
função TCreateHTML($tmplate){
$this->HTemplate=$tmplate;
}
//Define o nome do arquivo de saída
função SetHTML($nomedoarquivo){
$this->NomeArquivo=$nomearquivo;
}
//Define o nome da tag e a string de substituição correspondente
function EditableBlock($nome,$substituir){
$this->ModiString[$nome]=$substituir;
}
//Escreve arquivo HTML
função WriteHtml(){
$fc=arquivo($this->HTemplate);
$fp=fopen($this->NomeArquivo,"w");
$k=contagem($fc);
$início=falso;
$primeiro=falso;
$tag="";
for($i=0;$i<$k;$i++){
if(isbegin($fc[$i])){
fputs($fp,$fc[$i]);
$início=verdadeiro;
$primeiro=verdadeiro;
$tag=getnome($fc[$i]);
continuar;
}
if(isterminar($fc[$i])){
fputs($fp,$fc[$i]);
$início=falso;
$primeiro=falso;
$tag="";
continuar;
}
if($begin==true){
if($primeiro==verdadeiro) {
$fc[$i]=$this->ModiString[$tag]." ";
$primeiro=falso;
}
senão $fc[$i]="";
}
fputs($fp,$fc[$i]);
}
fclose($fp);
}
//--------fim da aula
}
?>
Um exemplo é o seguinte:
(
Primeiro crie um arquivo no formato html e adicione a marca <!--aaa--> onde deseja substituí-lo
. Nota!! Esta frase está em uma linha separada...
< !--@@aaa @@--> Atenção! ! Esta frase deve estar em uma linha separada, etc.)
<?
requer "createhtml.class.php";
$chtml=newTCreateHTML("template.htm");
$chtml->SetHTML("notícias.htm");
$chtml->EditableBlock("aaa","11aa111aa");
$chtml->EditableBlock("bbb","11bbb122bb");
$chtml->EditableBlock("ccc","11cc333cc");
$chtml->WriteHtml();
?>