您好,欢迎访问一九零五行业门户网

php+smarty批量生成静态文件

采用php+smary来模拟dedecms后台?>更新所有文档”的功能。特别说明,因为是在本机测试,只是为了能看到实现的功能,所以写得很简单。当然,本人也是菜鸟级php爱好者,欢迎大家批评指正。
第一步:下载和安装smarty
(1)我的网址根目录:localhost/php/
(2)php根目录下有:
libs目录smarty库文件;
tpls目录用于放置smarty的cache目录、configs目录、templates目录、templates_c目录;
article目录 呆会生成的静态文件,都放在这里
index.php文件php程序代码,呆会访问该页面时,即自动批量生成静态文件
第二步:index.php代码
一切从简,这里从数据库 dede_archives表中,只读取是 id 和 title 两个字段的内容。
settemplatedir('./tpls/templates/');$smarty->setcompiledir('./tpls/templates_c/');$smarty->setconfigdir('./tpls/configs/');$smarty->setcachedir('./tpls/cache');/** * 从数据库中读取内容**/$art = array();$mysqli = new mysqli(localhost,root,123456,dedecmsv57gbksp1);if($mysqli->error){ die(数据库连接失败:. $mysqli->error);}$mysqli->query('set names utf8');$query = select id,title from dede_archives limit 0,3;//简单测试,所以只读取了3篇文章$res = $mysqli->query($query);while($row = $res->fetch_assoc()){ $art[] = $row;}$mysqli->close();/** *循环生成静态文件**/for($i=0,$len=count($art);$iassign(id,$art[$i]['id']); $smarty->assign(title,$art[$i]['title']); $str = $smarty->fetch(view.html);//获得模板中smarty标签被替换后的内容 //生成静态文件 $fp = fopen(./article/views-.$art[$i]['id']..html,w); fwrite($fp, $str); fclose($fp);}echo 生成静态文件成功;?>
第三步:模板文件 ./tpls/templates/view.html
{$title}文章id为:{$id}
文章标题:{$title}
ok,完成,访问 index.php页面,即在 ./article/ 目录下自动生成静态文件。
其它类似信息

推荐信息