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&MYSQL分页原理及实现
Jan 02 PHP
收集的php编写大型网站问题集
Mar 06 PHP
php 常用类整理
Dec 23 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
php自定义函数截取汉字长度
May 15 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
PHP安全上传图片的方法
Mar 21 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
PHP解决中文乱码
Apr 28 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP保留两位小数的几种方法
Jul 24 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的curl开启问题探讨
2014/04/08 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
php创建图像具体步骤
2017/03/13 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
详解Bootstrap插件
2016/04/25 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
好的自荐信的要求
2013/10/30 职场文书
《我的信念》教学反思
2014/02/15 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
质量保证书
2015/01/17 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
消费者理赔投诉书
2015/07/02 职场文书
九年级数学教学反思
2016/02/17 职场文书