php静态文件生成类实例分析
本文实例讲述了php静态文件生成类。分享给大家供大家参考。
具体实现方法如下:
defined('phpjb51')ordie(header("http/1.1403notforbidden"));
classinclude_createstatic
{
private$htmlpath='';
private$path='';
public$monthpath='';
private$listpath='';
private$content='';
private$filename='';
private$extname='.html';
publicfunctioncreatehtml($type,$desname,$content)
{
$this->htmlpath=getappinf('htmlpath');
if(!file_exists($this->htmlpath))
{
@mkdir($this->htmlpath);
}
$this->path=$this->htmlpath.$this->monthpath.'/';
if(!file_exists($this->path))
{
@mkdir($this->path);
}
$this->listpath=$this->htmlpath.'list/';
if(!file_exists($this->listpath))
{
@mkdir($this->listpath);
}
switch($type)
{
case'index':
$this->filename=$desname;
break;
case'list':
$this->filename=$this->listpath.$desname;
break;
case'view':
$this->filename=$this->path.$desname;
break;
}
$this->filename.=$this->extname;
$this->content=$content;
}
publicfunctionwrite()
{
$fp=fopen($this->filename,'wb');
if(!is_writable($this->filename))
{
returnfalse;
}
if(!fwrite($fp,$this->content))
{
returnfalse;
}
fclose($fp);
return$this->filename;
}
}
//方法二
if(file_exists("./index.htm"))//看静态index.htm文件是否存在
{
$time=time();
//文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm
if(time-filemtime("./index.htm")<600)
{
header("location:classhtml/main.htm");
}
}
//在你的开始处加入ob_start();
ob_start();
//首页内容,就是你的动态部分了
//在结尾加入ob_end_clean(),并把本页输出到一个变量中
$temp=ob_get_contents();
ob_end_clean();
//写入文件
$fp=fopen("./index.htm",'w');
fwrite(fp,temp)ordie('写文件错误');
//echo"生成html完成!";
希望本文所述对大家的php程序设计有所帮助。