当前位置:首页 > PHP教程 > Smarty > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-20 10:59:00 浏览: 评论:0 

这篇文章主要介绍了PHP中使用smarty生成静态文件的例子,需要的朋友可以参考下,首先先要把需要静态化的内容填充到模版中去,代码如下:

  1. #eg.这个是静态化首页的 
  2. function staticIndex(){ 
  3.  
  4. $newslist = $article->getArticles(null,54,'DESC',1,6,false,1,2,'',0,0,1); 
  5.    if($newslist){ 
  6.     foreach($newslist as $k=>$v){ 
  7.      $newslist[$k]['title_all'] = $v['title']; 
  8.      $newslist[$k]['title'] = cutstr($v['title'],36,'…'); 
  9.     } 
  10.     $smarty->assign('newslist',$newslist); 
  11.    } 
  12.  
  13. $content = ''
  14. $content = $smarty->fetch('index.html',true);//这是Smarty自带的生成静态页面的函数 
  15. $static_name = ROOT_PATH.'index.html';//这是生成静态页面当前的路径文件 
  16. fopen($static_name,'a');//打开这个文件 
  17. @file_put_contents($static_name,$content);//最后写进去 
  18. return true; 
  19.  
  20. //静态化列表页,按类别不同经行静态化 
  21.  
  22. function staticContent(){//需要静态话的条数 
  23.   $ids = array();//获取所有的内容 
  24.    $ids = $this->getListIds();//这个方法获取所有的内容,下面红字部分对应它的方法 
  25.    foreach($ids as $k=>$value){ 
  26.     //echo $value['catid']; 
  27.     if(!file_exists(ROOT_PATH.'demo/')){//判断根目录下面有没有这个文件夹,如果没有则创建demo这个文件夹 
  28.      mkdir(ROOT_PATH.'demo/'); 
  29.     } 
  30.      if(!file_exists(ROOT_PATH.'demo/'.$value['catid'])){//判断这个文件夹下面有没有对应的类别文件夹 
  31.       mkdir(ROOT_PATH.'demo/'.$value['catid']); 
  32.       } 
  33.      $html_content = $this->getDemoContent($value['demoid']); 
  34.      $static_name = ROOT_PATH.'demo/'.$value['catid'].'/'.$value['demoid'].'.html'
  35.      fopen($static_name,'a'); 
  36.      @file_put_contents($static_name,$html_content); 
  37.     } 
  38.   return true; 
  39.   } 
  40.  
  41.   //拿出需要静态化的页面ID 
  42. function getListIds(){ 
  43.    $sql = "select * from {$this->tablepre}demo order by demoid asc"
  44.    $rs = $this->db->getAll($sql); 
  45.    if($rs){ 
  46.      return $rs
  47.    }else
  48.    return false; 
  49.    } 
  50.  
  51. //content单页静态化 
  52. function getDemoContent($id){ 
  53.    global $smarty,$view_templates,$admin_templates
  54.    loadModel(array('demo')); 
  55.    $demo = new demo(); 
  56.    $content = ''
  57.    $smarty->template_dir = ROOT_PATH.$view_templates
  58.    $getMobanOne = $this->getMobanDetail($id); 
  59.    $mobandetail = $demo->MobanList($id); 
  60.     foreach($mobandetail as $k=>$v){ 
  61.        $smarty->assign($k,$v); 
  62.        } 
  63.    $this->catid = $getMobanOne['catid']; 
  64.    $smarty->assign('pre_title',$mobandetail['membername']); 
  65.    $smarty->assign('mobandetail',$mobandetail); 
  66.    $content = $smarty->fetch('demo_show.html',true); 
  67.    $smarty->template_dir = ROOT_PATH.$view_templates
  68.    return $content

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

Tags: smarty生成静态

分享到: