buildHtml方法:
protected
function buildHtml($htmlfile='',$htmlpath='',$templateFile='') { $content = $this->fetch($templateFile);
$htmlpath
= !empty($htmlpath)?$htmlpath:HTML_PATH;
$htmlfile = $htmlpath.$htmlfile.C('HTML_FILE_SUFFIX');
if(!is_dir(dirname($htmlfile)))
// 如果静态目录不存在则创建
mkdir(dirname($htmlfile));
if(false === file_put_contents($htmlfile,$content))
throw_exception(L('_CACHE_WRITE_ERROR_').':'.$htmlfile);
return $content;
}
根据模和内容生成html文件
$this->buildHtml('静态文件', '静态路径','模板文件');
参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项
目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)
参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。
define(‘HTML_PATH’, ‘./’);(将静态路径义为网站根目录)参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。
模板文件。
<{$content}>
function add_pic(){
$title=$_POST['title'];//图文标题
$news['author']=$_POST['author'];///作者
$img=$_FILES['img'];//图片
$coucent=$_POST['word'];//内容
//从数据库中取出新闻标题存放到变量$title中
$name=date("YmdHis");
//从数据库中取出新闻内容存放到变量$content中
$this->assign("title", $title);
$this->assign("content", $coucent);
$this->buildHtml($name,'./123/', 'test');
$this->display('index');
}
Php根据模和内容生成html文件
模板文件与上面的模板文件相同。
$title = "我的模板"; //标题存放到变量$title中$content = "内容"; //内容存放到变量$content中
$path = "12536".".html"; //路径
$fp = fopen("test.html", "r"); //一只读方式打开模板文件
$str = fread($fp, filesize("test.html")); //读取模板文件中的全部内容
$str = str_replace("{title}", $title, $str); //用存储在变量$title中的标题替换模板中的标题
$str = str_replace("{content}", $content, $str); //用存储在变量$content中的内容替换模板中的内容
fclose($fp); //关闭模板文件
$handle = fopen($path, "w"); //写入方式打开新闻路径
fwrite($handle, $str); //把刚才替换的内容写入生成的html 文件
fclose($handle); //关闭文件
?>