当前位置:首页 > 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.  
  23. function staticContent(){//需要静态话的条数 
  24.   $ids = array();//获取所有的内容 
  25.    $ids = $this->getListIds();//这个方法获取所有的内容,下面红字部分对应它的方法 
  26.    foreach($ids as $k=>$value){ 
  27.     //echo $value['catid']; 
  28.     if(!file_exists(ROOT_PATH.'demo/')){//判断根目录下面有没有这个文件夹,如果没有则创建demo这个文件夹 
  29.      mkdir(ROOT_PATH.'demo/'); 
  30.     } 
  31.      if(!file_exists(ROOT_PATH.'demo/'.$value['catid'])){//判断这个文件夹下面有没有对应的类别文件夹 
  32.       mkdir(ROOT_PATH.'demo/'.$value['catid']); 
  33.       } 
  34.      $html_content = $this->getDemoContent($value['demoid']); 
  35.      $static_name = ROOT_PATH.'demo/'.$value['catid'].'/'.$value['demoid'].'.html'; 
  36.      fopen($static_name,'a'); 
  37.      @file_put_contents($static_name,$html_content); 
  38.     } 
  39.   return true; 
  40.   } 
  41.  
  42.   //拿出需要静态化的页面ID 
  43. function getListIds(){ 
  44.    $sql = "select * from {$this->tablepre}demo order by demoid asc"; 
  45.    $rs = $this->db->getAll($sql); 
  46.    if($rs){ 
  47.      return $rs; 
  48.    }else{ 
  49.    return false; 
  50.    } 
  51. } 
  52.  
  53. //content单页静态化 
  54. function getDemoContent($id){ 
  55.    global $smarty,$view_templates,$admin_templates; 
  56.    loadModel(array('demo')); 
  57.    $demo = new demo(); 
  58.    $content = ''; 
  59.    $smarty->template_dir = ROOT_PATH.$view_templates; 
  60.    $getMobanOne = $this->getMobanDetail($id); 
  61.    $mobandetail = $demo->MobanList($id); 
  62.     foreach($mobandetail as $k=>$v){ 
  63.        $smarty->assign($k,$v); 
  64.        } 
  65.    $this->catid = $getMobanOne['catid']; 
  66.    $smarty->assign('pre_title',$mobandetail['membername']); 
  67.    $smarty->assign('mobandetail',$mobandetail); 
  68.    $content = $smarty->fetch('demo_show.html',true); 
  69.    $smarty->template_dir = ROOT_PATH.$view_templates; 
  70.    return $content; 
  71. } 

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

Tags: smarty生成静态

分享到: