PHP中如何使用smarty生成静态文件
创始人
2024-12-13 22:42:38
0次

首先先要把需要静态化的内容填充到模版中去

复制代码 代码如下:


#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;
}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...