PHP中使用smarty生成静态文件的例子


Posted in PHP onApril 24, 2014

首先先要把需要静态化的内容填充到模版中去

#eg.这个是静态化首页的
function staticIndex(){
$newslist = $article->getArticles(null,54,'DESC',1,6,false,1,2,'',0,0,1);
   if($newslist){
    foreach($newslist as $k=>$v){
     $newslist[$k]['title_all'] = $v['title'];
     $newslist[$k]['title'] = cutstr($v['title'],36,'…');
    }
    $smarty->assign('newslist',$newslist);
   }
$content = '';
$content = $smarty->fetch('index.html',true);//这是Smarty自带的生成静态页面的函数
$static_name = ROOT_PATH.'index.html';//这是生成静态页面当前的路径文件
fopen($static_name,'a');//打开这个文件
@file_put_contents($static_name,$content);//最后写进去
return true;
}
//静态化列表页,按类别不同经行静态化
function staticContent(){//需要静态话的条数
  $ids = array();//获取所有的内容
   $ids = $this->getListIds();//这个方法获取所有的内容,下面红字部分对应它的方法
   foreach($ids as $k=>$value){
    //echo $value['catid'];
    if(!file_exists(ROOT_PATH.'demo/')){//判断根目录下面有没有这个文件夹,如果没有则创建demo这个文件夹
     mkdir(ROOT_PATH.'demo/');
    }
     if(!file_exists(ROOT_PATH.'demo/'.$value['catid'])){//判断这个文件夹下面有没有对应的类别文件夹
      mkdir(ROOT_PATH.'demo/'.$value['catid']);
      }
     $html_content = $this->getDemoContent($value['demoid']);
     $static_name = ROOT_PATH.'demo/'.$value['catid'].'/'.$value['demoid'].'.html';
     fopen($static_name,'a');
     @file_put_contents($static_name,$html_content);
    }
  return true;
  }
  //拿出需要静态化的页面ID
function getListIds(){
   $sql = "select * from {$this->tablepre}demo order by demoid asc";
   $rs = $this->db->getAll($sql);
   if($rs){
     return $rs;
   }else{
   return false;
   }
}
//content单页静态化
function getDemoContent($id){
   global $smarty,$view_templates,$admin_templates;
   loadModel(array('demo'));
   $demo = new demo();
   $content = '';
   $smarty->template_dir = ROOT_PATH.$view_templates;
   $getMobanOne = $this->getMobanDetail($id);
   $mobandetail = $demo->MobanList($id);
    foreach($mobandetail as $k=>$v){
       $smarty->assign($k,$v);
       }
   $this->catid = $getMobanOne['catid'];
   $smarty->assign('pre_title',$mobandetail['membername']);
   $smarty->assign('mobandetail',$mobandetail);
   $content = $smarty->fetch('demo_show.html',true);
   $smarty->template_dir = ROOT_PATH.$view_templates;
   return $content;
}

以前用的那个生成静态页面每次都要执行PHP文件,然后才能生成,现在我写的这个就是由人控制的,想生成就生成,很方便,希望能给大家带来方便,祝大家工作愉快。

PHP 相关文章推荐
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
php 中的str_replace 函数总结
Apr 27 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php读取大文件示例分享(文件操作类)
Apr 13 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
php制作简单模版引擎
Apr 07 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 #PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 #PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 #PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 #PHP
php获取中文拼音首字母类和函数分享
Apr 24 #PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 #PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
Apr 24 #PHP
You might like
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php5 mysql分页实例代码
2008/04/10 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
医药专业推荐信
2013/11/15 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
民事起诉状范文
2015/05/19 职场文书
国庆节新闻稿
2015/07/17 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS