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中的正规表达式(一)
Oct 09 PHP
服务器端解压缩zip的脚本
Dec 22 PHP
相对路径转化成绝对路径
Apr 10 PHP
set_include_path在win和linux下的区别
Jan 10 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php实现图片以base64显示的方法
Oct 13 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 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 和 XML: 使用expat函数(二)
2006/10/09 PHP
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
python获得图片base64编码示例
2014/01/16 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python3开发环境搭建详细教程
2020/06/18 Python
夜大毕业自我鉴定
2013/10/11 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
质量承诺书范文
2014/03/27 职场文书
大跃进口号
2014/06/16 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
2014年少先队工作总结
2014/12/03 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技