PHP生成静态页面的两种方法

  1. 管理后台添加记录时,直接生成目标html页面,并且前台调用连接直接指向生成的html页面。这种方法程优点是程序效率最高。

   服务器负荷轻,不过由于生成的是纯静态页面,一旦页面样式(模版及css=theme)上有所改动就必须重新生成所有的内容页。

   所以实际使用中应用一般不是太多。更多的是使用js,ssi,xml/xsl等客户端手段,生成的静态文件中仅保存数据,不涉及样式,

   这样能达到速度和维护性的平衡,不过相对前后台程序要复杂些(应用这种方法时,由于内容为纯静态,可以搭配单独编译的纯静态的apache使用。。效率和资源占用上比包含动态内容支持的要更佳)

   ====
   补充:

    a. 上面说的改动样式,要重新生成所有的内容页,可以通过:
    >>>>在可以在每个生成的页面内嵌入一个<script src=XXX.php?id=xxx&template=red></script>来判断是否需要重新生成该页面。

    >>>>apache 的ErrorDocument404 功能, 但是这里前台链接是指向html的,如果该html不存在, 会通过apache的文件不存在重定向到404处理程序的功能重新生成html

       (注:httpd.conf加 ErrorDocument 404 /errprocess.php 指令), 利用这个功能可以解决修改网站样式的时候,要更新所有生成的html文件的问题,

        将整个static文件夹删除即可。

    b. 通过嵌入<script></script>js来调用php的方式,更改许多需要变化的地方(如点击率之类的)

  2. 前台访问链接指向php程序,php程序首先检查是否存在相应的静态文件。如果静态文件不存在。则生成并重定向至此文件,否则直接重定向。

   这种方法实际使用中一般和apache的url_rewrite功能一起使用。将php的文件地址重显示为html的形式,有利于搜索引擎的检索。

   这种方法在效率上略有损失,不过程序结构简单,便于调整,在访问量不是很大时使用很合适。
   
 注意事项: 

   所有生成的html文件都集中放到一个文件夹, 其中还应该注意生成文件如果很多的话(如论坛),访问其中一个htm文件,将会变得很慢,

   那么最好通过

   >>>>按日期来分隔文件夹,如static/2004/11/18/0001.htm
   >>>>对帖子id根据数据库中字段长度做str_pad:比方说id为123456,数据库中为int(11),则id处理为00000123456,考虑到linux下一般同一下文件到达四位数会有性能影响,对其做切割,最后路径为static/00/000/123/456.html

时间: 2024-09-20 00:15:54

PHP生成静态页面的两种方法的相关文章

PHP使用imagick读取PDF生成png缩略图的两种方法

 这篇文章主要介绍了PHP使用imagick读取PDF第一页生成png缩略图的两种方法,使用了PHP扩展php_imagick,需要的朋友可以参考下 一.ImageMagick是什么 ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大

PHP使用imagick读取PDF生成png缩略图的两种方法_php实例

一.ImageMagick是什么ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.二.php_imagick什么一个可以供PHP调用ImageMagick功

jsp页面中两种方法显示当前时间的简单实例_JSP编程

在jsp页面实现显示当前的日期时间,我们可以用一下两种方式实现: 1. 通过在jsp页面添加Java代码实现,主要代码如下所示 java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); java.util.Date currentTime = new java.util.Date(); String time = simpleDateForm

php生成html静态页面的二种方法

两种方法简单说明如下: 一, 利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中. 使用说明: 1.实例化  代码如下 复制代码 $cache = new Cache();2.设置缓存时间和缓存目录 $cache = new Cache(60, '/any_other_path/'); 第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置. 默认情况下,缓存时间是 3600 秒,缓存目录是 cache/ 3.读取缓存  代码如下 复制代码 $val

ASP应用技巧:生成静态网页的一种方法

技巧|静态|网页 下面代码可以帮您生成静态页面,如:list.asp是读数据库的页面,要生在list.htm静态页面,你的域名是xxx.com,可以用下面代码,使用方法:if SaveFile("/htm/list.htm","http://www.xxx.com/asp/list.asp") thenResponse.write "已生成"elseResponse.write "没有生成"end if 如生成失败,请把代码O

asp.net 生成html页面的二种方法

从数据库教程中查询出title,content,datetime三个内容之后,分别替换掉模版中对应位置的{title},{content},{datetime}然后保存为xx.html一个静态页就生成了. 今天写的实例主要体现替换保存的步骤. 模版就不做了,直接整个body作为一个标签,把要做成静态页的动态页面的body部分当作是查询出的数据替换掉{body}部分,生成一张静态页.(首页静态可以这么做哦). 1.使用serever.Excute  StreamWriter sw = new St

如何生成静态页面的五种方案

静态|页面 方案1:/// <summary>/// 传入URL返回网页的html代码/// </summary>/// <param name="Url">URL</param>/// <returns></returns>public static  string getUrltoHtml(string Url){errorMsg = "";try{System.Net.WebRequest

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

方法一: 复制代码 代码如下: <?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&quo

微信小程序 跳转页面的两种方法详解

微信小程序 跳转页面 小程序页面有2种跳转,可以在wxml页面或者js中: 1,在wxml页面中: <navigator url="../index/index">跳转到新页面</navigator> <navigator url="../index/index" open-type="redirect">在当前页打开</navigator> <navigator url="../i