用Smarty模板引擎生成静态HTML文件

用php生成静态文件的方式很简单,就是用fopen()方法,fwrite(),fclose(),就好了,下面是php文档中fopen中mode值的说明:

然后我们有一个需求就是在smarty模版引擎中点击一个按钮生成一个html的文件,内容是从数据库读出来的一串循环的、有层级的数据,这时候我们应该怎么做了?

用smarty生成静态html文件的关键就是用缓存技术,开启缓冲,用display或者fetch向前台传输数据的时候其实不会显示在view上,这时候打开文件,写入文件,就生成好了一个静态文件。

我们看2个实例:

1、

View Code
 1 public function index()
 2     {
 3          $this->cismarty->caching = true;
 4          ob_start();
 5          $title = "title";
 6          $shopName = "穿越火线";
 7          $model = '<li><h3>{#$shopName#}</h3></li>';
 8          $outfilename = "0005.html";
 9          $this->cismarty->assign("title", $title);
10          $this->cismarty->assign("model", $model);
11          $this->cismarty->assign("shopName", $shopName);
12          $this->cismarty->display("ppms/smarty.html"); 
13          $str = ob_get_contents();
14          $fp = @fopen($outfilename, 'w');
15          if (!$fp) {
16              Show_Error_Message( ERROR_WRITE_FILE );
17          }
18          fwrite($fp, $str);
19          fclose($fp);
20          ob_end_clean();
21              
22     }

2、

View Code
1 function makeHtml(){
2         ob_start();
3         $this->cismarty->assign("title","Hello World!");
4         $content = $this->cismarty->fetch("ppms/smarty.html");
5         //这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
6         $fp = fopen("0001.html", "w");
7         fwrite($fp, $content);        
8         fclose($fp);    
9 }

上面两种方式是常用的,第一种用display方法,用$str = ob_get_contents();得到向前台输出的内容,第二种用fetch直接获取向前台输出的内容(两种都不会真正地展示出来中)。然后写入到文件中,因为用“w”的方式,没有这个文件就会新建一个。成功~~~

转载于:https://www.cnblogs.com/fredshare/archive/2012/04/13/2445898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【软件功能特点】    一、强大的模板引擎技术   企业网站管理系统借鉴了Discuz的模板技术,实现了MVC模式,模板全面标签化,只需懂得简单的html语言就能打造一个漂亮的网站;      二、无限极分类,自由选取模块。   实现递归无限级分类,每个分类可自定义模块,自选模块;   三、模版、插件共分享资源无限   模版,方便地安装插件、模版、边框;采用积分机制激励插件、模版的DIY开发和资源分享,越来越丰富的资源让您的网站越来越丰富多彩;   四、邮件订阅及群发功能   邮件订阅及邮件群发功能,后台轻松实现邮件营销,让您的企业通过互联网快速向外传播;   五、良好的用户体验   采用JQUERY、AJAX等前端技术,注重用户友好度和用户体验;   六、网站地图(sitemap.xml)   生成生成Google网站地图,通过Google工具,让搜索引擎快速收录最新发布的页面; 七、平滑的静态网页生成 基于AJAX的平滑静态网页技术,生成静态网页,提高网站访问效率,有利搜索引擎收录。 【安装】   请注意备份原有数据库内容,以免覆盖。   1.下载并解压缩文件包,上传至服务器或主机空间    2.在浏览器地址栏中输入:http://你的域名/install.php进入安装界面;   3.按步骤安装系统。   4.进入http://你的域名/admin用自己设置的管理用户名字和密码登录后台进行初始设置.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值