admin 管理员组

文章数量: 887021


2023年12月16日发(作者:织梦转百度小程序模板)

PHP生成HTML静态页面类

/*

的代码

{title}

{text}

$sc=new template();

//$sc=new template($tmp,$filename,$arr); (本来这里直接用构造函数来实现的,考虑到会有很多的生成静态页的进程,还是改为函数调用,本处保留备用,在类中template()替换成templateHtml()即可实现)

$tmp="../template/"; //模板页

$filename=""; //生成页

$foot="../"; //包含的底文件,头文件同理

$arr=array();

$arr["{title}"]="新标题";

$arr["{text}"]="新内容";

$arr["{foot}"]=$sc->readHtml($foot);

$sc->templateHtml($tmp,$filename,$arr);

*/

class template

{

var $temp;

var $html;

var $err;

var $test;

var $arr;

键值->替换内容)

function template()

{

$this->temp="";

$this->html="";

$this->err=0;

$this->test="";

//读取的模板页文件名(包含路径)

//要生成的html文件名(包含路径)

//错误编号

//数据流

//要替换的数组 模式(键名->模板标签 ,

}

function templateHtml($temp,$html,$arr)

{

$err=$this->chkFile($temp);

if((int)$err==0)

{

$fp=fopen($temp,"r"); //只读方式打开模板页

$test=fread($fp,filesize($temp)); //读取模板页的数据流

$test=$this->arr_replace($arr,$test); //替换文件

$err=$this->writefile($html,$test); //生成静态页

}

echo "由模板页 ".$temp." 生成 ".$html.$this->error($err);

return;

}

/*

*判断文件是否存在

*返回错误提示

*/

function chkFile($file)

{

if (file_exists($file))

{

return 0;

}

return 1;

}

/*

*根据数组文件内容,替换数据流 模式(键名->模板标签 , 键值->替换内容)

*返回数据流

*参数$arr:数组

*参数$test :数据流

*/

function arr_replace($arr,$test)

{

$ss=$test;

foreach ($arr as $key => $value)

{

$ss= str_replace($key,$value,$ss);

}

return $ss;

}

/*

*将数据流,写入到文件中

*返回执行状态

*参数$html:要生成的html文件

*参数$test :数据流

*/

function writefile($html,$test)

{

$stat=2;

if($this->chkFile($html)==0) // {

$stat=0;

}

if($f=fopen($html,"w")) //创建

判断文件是否存在

//已经存在返回0

写入方式打开文件,不存在则

{

fputs($f,$test);

fclose($f);

$stat=0; //写入成功返回0

}

else

{

$stat=2;

}

return $stat;

}

/*

*错误提示

*返回错误提示

*参数$err:错误编号

*参数$file :错误文件

*/

function error($err)

{

$message="";

switch((int)$err)

{

//写入失败返回2

case 0 :

$message=" 静态页生成成功";

break;

case 1 :

$message=" 模板页打开失败,请检查是否存在";

break;

case 2 :

$message=" 文件生成失败,请检查目录权限";

break;

default:

$message=" 未知错误";

}

return $message;

}

/*

*

*主要用来读取模板页,返回数据流 (比如top,foot公用文件,)

*参数$file :模板页路径

*/

function readHtml($file)

{

$test="";

$err=$this->chkFile($file);

if($err==0)

{

$fp=fopen($file,"r");

模板页

$test=fread($fp,filesize($file));

}

else

{

$test=$file.$this->error($err);

}

return $test;

}

/*

*

*主要用来删除已生成的文件,不返回

//只读方式打开//读取模板页的数据

*参数$file :文件路径

*/

function delete_file($file)

{

if (file_exists($file))

{

$delete = chmod ($file, 0777);

$delete = unlink($file);

if(file_exists($file))

{

$filesys = eregi_replace("/","",$file);

$delete = system("del $filesys");

clearstatcache();

if(file_exists($file))

{

$delete = chmod ($file, 0777);

$delete = unlink($file);

$delete = system("del $filesys");

}

}

clearstatcache();

}

}

}

?>

欢迎光临易易充值:


本文标签: 文件 模板 返回 生成 错误