关于php生成HTML静态的问题

发布人:zicky  时间:2007-11-29 22:11  来源: Php Question  查看: 359次
生成静态页后如果哪天俺想改模板怎么办??



PS:个人整理自phpchina

文章评论

共有 14 位PhpQ的网友发表了评论查看完整内容

  • zicky发表评论: 2007-11-29 22:11:59
  • 晕死,你改了模板后,或者说你做任何修改后,重新生成静态页不就行了。

    一般都把把生成这个动作做成一个后台的管理界面来操作。或者是交由系统进程定时处理。我是写一个脚本让cron去执行,定时删静态页。
  • zicky发表评论: 2007-11-29 22:12:06
  • 我没有自己的服务器啊.所以只能在后台选择多个然后批量生成..
    昨天一次生成13个页就超时了.....郁闷....
    后来只能10页10页的生成
  • zicky发表评论: 2007-11-29 22:12:12
  • 我的办法是更新时只删除旧的静态页,新的页面,等访问时再生成。这样可以把生成页面的负载分散开来。
    用到了http.conf里
    ErrorDocument 404 /error_proc.php
    这个办法要和生成页面的代码配合。有空整理一下发上来。
  • zicky发表评论: 2007-11-29 22:12:34
  • ErrorDocument 404 /error_proc.php
    这个俺也没办法用...
    如果我用有访问时再生成的办法不就变成缓存形式的了?
  • zicky发表评论: 2007-11-29 22:12:44
  • 有访问时再生成,只是生成一次呀
  • zicky发表评论: 2007-11-29 22:12:49
  • 但是文章列表那的链接应该是 create_html.php?id=11 这种形式吧??
    create_html.php用来判断静态页是否存在...不存在就生成..存在就直接跳过去
    那样不是还得开一次数据库?
  • zicky发表评论: 2007-11-29 22:12:58
  • 看你的链接就知道思路应该还是比较局限。

    这样你的create_html.php只能为单一的页面服务。

    我的做法是xxx.php?target=html,只要是有这个参数的,就会在指定的地点生成静态页面。当然,会在var.php里定义一下,有哪些页面可以做这个处理,省得做无用功。
    然后就可以把生成静态页面的部分做成一个独立的函数。在页尾include区去调用它。调用前判断一下是否有target=html这个即可。

    上面的是生成部分。而在实际访问过程中,如果静态页不存在,流程切换至error_proc.php,这个里面去判断当前访问的是哪一个程序哪些参数,分析完生成一个链接,header过去,比如:xxxx.php?a_id=xxx&target_html,这样,既显示了当前页面,同时还生成静态页面,当下一个访问页面时,静态页已经存在了。静态页的地址类于:http://www.xxx.com/xxx/xxxx_yyyy_zzzz.html,这里面/xxx/xxx_yyy_zzz部分就可以用来放准备用于判断程序与参数的部分,这个就要你自已去分析定义了。
  • zicky发表评论: 2007-11-29 22:13:05
  • 刚才我说是对于商务类网站而言,特点是有大量的商品页,类别页,新闻页等等,有更新,但对实时性并不特别敏感。

    对于像DISCUZ之类的论坛而言,缓冲的概念与处理思路又不同了。
  • zicky发表评论: 2007-11-29 22:13:11
  • 这个怎么判断静态页是否存在???不是直接就显示404错误么?
    俺用的虚拟主机...

    看了三遍...还是有些不懂...呵呵
  • zicky发表评论: 2007-11-29 22:13:20
  • 这是就是用的apache的特性了。要做一个设置,你可以问一下你的虚拟主机提供商,是否支持这个功能。

    简单的说就是在http.conf里加那一句。

    我问过几家,有的支持有的不支持。
  • zicky发表评论: 2007-11-29 22:13:26
  • 俺说一下俺的理解...刚才你说的很多没看懂...没做过这个..嘿嘿

    访问 -> 不存在HTML页 -> 404错误 -> 设置404错误系统自动跳到error.php页 -> 后面咋判断是哪一页没生成???是否判断是从哪个URL转过来的?? ->然后取出数据库中的内容生成相应的静态页

    从没用404错误跳转...不懂...
  • zicky发表评论: 2007-11-29 22:13:33
  • 让PHP去判断,从流程上看,就要让APACHE去调用PHP模块了,还是纯HTML页面负载最轻。

    我最早做的缓冲解决方案就是让PHP去判断是否有缓冲文件,在WIN32+APACHE+PHP的环境里,负载问题最明显。
  • zicky发表评论: 2007-11-29 22:13:41
  • 我不知道这个主题讨论的到底是什么 就看到404了 如果说一切条件都允许当然还是apache的错误页面优先
  • kimi发表评论: 2007-11-29 23:18:10
  • 路过~~~~~~~~~~~~

PHP论坛热门