您的位置:首页技术文章

Smarty中批量生成html的方法

【字号: 日期:2023-09-23 13:06:07浏览:73作者:馨心

经过一番摸索,终于找到方法,写出来大家指点一下:首先在smartt.class.php中为Smarty类添加这么一个方法:PHP代码://参数一:html文件保存路径,参数2:写入的内容function MakeHtmlFile($file_name, $c) {; if(!$fp = fopen($file_name, 'wa')) {;; echo '文件打开失败!';;; return false;;; };; if(!fwrite($fp, $c)) {;; echo '文件写入失败!';;; fclose($fp);;; return false;;; };; fclose($fp);;; }

问题:我的所有文章都调用的是news.tpl这个模板,那么究竟如何批量生成呢?

我们先看看news.phpPHP代码:

<?phpinclude_once('config.php');include_once('init.php');$s->assign('title','所有的新闻分类');$ID=$_GET['ID']+0;$sql='select * from artical where newsID=$ID';$rs=$db->fetch($sql);$s->assign('news',$rs['rec'][0]);//注意:$rs['rec'][0]是个数组$s->display('news.html');?>

整个模板变量就只有$news,这么写有什么好处呢?我可以以数组的方式读取内容

那么究竟如何生成:看如下代码:很简单的PHP代码:

<?phpinclude_once('config.php');include_once('init.php');$sql='select * from artical';$rs=$db->fetch($sql);foreach ($rs['rec'] as $k=>$v){$s->assign('news',$v);$s->MakeHtmlFile('./news/news_'.$v[0].'.html',$s->fetch('news.html',null, null, false));}?>

很简单把!

PHP代码:<!DOCTYPE html PUBLIC '//W3C//DTD XHTML 1.0 Transitional//EN' '[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]'><html xmlns='[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]'><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312' /><title><{$news.titles}></title><link href='https://www.uahao.com/bcjs/<{$docroot}>/CSS/main.css' rel='stylesheet' type='text/css' /></head><body><table border='0' cellpadding='0' cellspacing='0' style='border:solid #CCCCCC 1px'> <tr> <td colspan='6' bgcolor='#eeeeee'><strong><{$news.titles}></strong></td> </tr> <tr> <td align='right'>作者:</td> <td width='220'><{$news.author}></td> <td align='right'>时间:</td> <td align='left'><{$news.sj}></td> <td align='right'>关键词:</td> <td align='left'><{$news.keyword}></td> </tr> <tr> <td >核心提示:</td> <td colspan='5' style='border:double #FF0000 3px;'><{$news.sumary}></td> </tr> <tr> <td colspan='6' style='padding:10px;'><{$news.contents}></td> </tr></table></body></html>

总结:主要使用smarty的fetch方法,和文件的读写操作

标签: PHP