smarty实现PHP静态化的两种方法分享

 更新时间:2012年02月04日 13:38:33   作者:  
用smarty实现纯静态化的文件发布有两种方法,也就是纯HTML文件生成的方法,包括以下两种方法,需要的朋友可以参考下

方法一:

复制代码 代码如下:

<?php
require_once("./config/config.php");
ob_start();
$id=$_GET[id];
$sql="select * from table_name where id='$id'";
$result=mysql_query($sql);
$rs=mysql_fetch_object($result);
$smarty->assign("showtitle",$rs->title);
$smarty->assign("showcontent",$rs->content);
$smarty->display("content.html");
$this_my_f= ob_get_contents();
ob_end_clean();
$filename = "$id.html";
tohtmlfile_cjjer($filename,$this_my_f);
// 文件生成函数
function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content){
if (is_file ($file_cjjer_name)){
@unlink ($file_cjjer_name); //存在,就删除
}
$cjjer_handle = fopen ($file_cjjer_name,"w"); //创建文件
if (!is_writable ($file_cjjer_name)){ //判断写权限
return false;
}
if (!fwrite ($cjjer_handle,$file_cjjer_content)){
return false;
}
fclose ($cjjer_handle); //关闭指针
return $file_cjjer_name; //返回文件名
}
?>

方法二:
smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的:
复制代码 代码如下:

<?php
function fetch($resource_name, $cache_id = null,
$compile_id = null, $display = false)
?>

第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容. 生成静态页我们就需要用到这个方法.
复制代码 代码如下:

<?php
$smarty = new Smarty();
//其它模板替换语法...
//下面这句取得页面中所有内容, 注意最后一个参数为false
$content = $smarty->fetch('模板名称.tpl', null, null, false);
//下面将内容写入至一个静态文件
$fp = fopen('news.html', 'w');
fwrite($fp, $content);
fclose($fp);
//OK, 到这里这个news.html静态页就生成了, 你可以处理你下一步的工作了
?>

相关文章

  • 实现一台或者多台Linux实例解绑SSH密钥对

    实现一台或者多台Linux实例解绑SSH密钥对

    在本篇文章中我们给大家分享了一篇如何为一台或者多台 Linux 实例解绑 SSH 密钥对的相关内容,有兴趣的朋友们学习下。
    2018-10-10
  • Linux操作系统的概述与简介

    Linux操作系统的概述与简介

    这篇文章概括描述了什么是操作系统,Linux的起源,Linux基本特性和Linux的应用,希望通过这篇文章可以让你对Linux操作系统有一个更好的了解
    2021-06-06
  • 详解几种Linux 查询外网出口IP命令的方法

    详解几种Linux 查询外网出口IP命令的方法

    本篇文章主要介绍了详解几种Linux 查询外网出口IP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • win10 装centos7 虚拟机

    win10 装centos7 虚拟机

    虚拟机安装网上教程很多,碰到问题也容易解决,这里就记录下便于自己翻越,有不足之处还请指明,不吝赐教
    2019-01-01
  • Linux的压缩和解压缩的方法总结

    Linux的压缩和解压缩的方法总结

    这篇文章主要介绍了Linux的压缩和解压缩的方法总结的相关资料,通过本文希望大家能掌握Linux 压缩和解压缩的知识,需要的朋友可以参考下
    2017-08-08
  • Apache 文件上传与文件下载案例详解

    Apache 文件上传与文件下载案例详解

    写一个Apache文件上传与文件下载的案例以供今后学习,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • linux中某个文件夹执行命令完全卡死的问题及解决

    linux中某个文件夹执行命令完全卡死的问题及解决

    这篇文章主要介绍了linux中某个文件夹执行命令完全卡死的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 详解在Linux中搭建一个FTP服务器

    详解在Linux中搭建一个FTP服务器

    本篇文章主要介绍了在Linux中搭建一个FTP服务器 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux包管理工具yum、apt的区别

    Linux包管理工具yum、apt的区别

    Linux系统基本分两大类:RedHat系列:Redhat、Centos、Fedora等;Debian系列:Debian、Ubuntu 等。yum是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。apt是一个在 Debian 和Ubuntu中的Shell前端软件包管理器。
    2023-04-04
  • apache日志配置一例

    apache日志配置一例

    apache日志配置一例,包括指定存储目录与格式、自动删除过期的日志文件,有需要的朋友可以参考下
    2013-02-02

最新评论