PHP

通过smarty生成纯静态化网页

 今天找关于网站生成静态页的文章,突发奇想:smarty能生成页面缓存,能不能直接生成静态页呢?于是上网搜了下相关文章。找到一篇不错的:http://www.blogguy.cn/show-228-1.html

Smarty最大的功能是做模版的页面缓存。也就是通过Smarty可以完成两个步骤:编译+解析

第一步:编译。是指把模版文件的标签替换为纯php,再保存在缓存位置,保存的文件扩展名是PHP,我把这个步骤叫做编译(这是我自己的叫法,不是官方的)

第二步:解析。也就是把刚才编译的PHP文件解析执行而已~~这个就不用多做解释了

切入正题,在Smarty.class.php文件中加入如下代码

01 function MakeHtmlFile($file_name$content)
02     {     //目录不存在就创建
03          if (!file_exists (dirname($file_name))) {
04              if (!@mkdir (dirname($file_name), 0777)) {
05                      die($file_name."目录创建失败!");
06              }
07          }
08  
09          if(!$fp fopen($file_name"w")){
10              echo "文件打开失败!";
11              return false;
12          }
13  
14          if(!fwrite($fp$content)){
15              echo "文件写入失败!";
16              fclose($fp);
17              return false;
18          }
19  
20          fclose($fp);
21              chmod($file_name,0666);
22      }

这个函数的作用就是保存文件~~

调用方法如下

01 require '../libs/Smarty.class.php';
02  
03 $smarty new Smarty;
04  
05 //…………省略变量定义和赋值
06  
07 //$smarty->display('index.tpl');
08 $content=$smarty->fetch("index.tpl");
09  
10 $smarty->MakeHtmlFile('./index.html',$content);//生成

Publish Comment发表评论

点击刷新验证码 点击图片可刷新验证码

Comment网友评论

詹绍乾 Jancy © 版权所有 2020

Copyright © 2010 by zhansq.cn All right reserved.