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 相关文章推荐
mysql中存储过程、函数的一些问题
Feb 14 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
解析php中const与define的应用区别
Jun 18 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
php GUID生成函数和类
Mar 10 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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实现获取域名的方法小结
2014/11/05 PHP
php获取url参数方法总结
2014/11/13 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
javascript call方法使用说明
2010/01/11 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
详解Django中的过滤器
2015/07/16 Python
使用python实现BLAST
2018/02/12 Python
简单谈谈python基本数据类型
2018/09/26 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
如何强制垃圾回收
2015/10/06 面试题
金鑫耀Java笔试题
2014/09/06 面试题
业务经理的岗位职责
2013/11/16 职场文书
团日活动总结
2014/04/28 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
初二物理教学反思
2016/02/19 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
mysql数据库入门第一步之创建表
2021/05/14 MySQL
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers