Php Question致力于分享PHP经验,做最专业的PHP论坛! www.phpq.net
PHP教程
PHP论坛
PHP中文手册
PHP教程
PHP中文手册
Google PR值在线查询
加入收藏
PHP问答
PHP技术
PHP教程
PHP程序
Php原创
MySQL技术
Linux技术
前台制作
技巧应用
进阶探究
数据库相关
PHP相关
您现在正在浏览:
Php Question
>>
PHP问答
>>
查看帖子
«
在PHP中使用会话控制功能
Mysql配置向导
»
关于php生成HTML静态的问题
发布人:zicky 时间:2007-11-29 22:11 来源: Php Question 查看: 359次
生成静态页后如果哪天俺想改模板怎么办??
PS:个人整理自phpchina
加入收藏
PHP中文手册
PHP论坛
查看全部回复
关闭此页
文章评论
共有
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论坛热门
PHP论坛精华
人性化修改--单贴附件个数...
Top 1000 SQL Performanc...
PHP编码规范
《Discuz!6.0数据字典》习...
对PHP缓存的初识
文章评论
共有 14 位PhpQ的网友发表了评论查看完整内容
一般都把把生成这个动作做成一个后台的管理界面来操作。或者是交由系统进程定时处理。我是写一个脚本让cron去执行,定时删静态页。
昨天一次生成13个页就超时了.....郁闷....
后来只能10页10页的生成
用到了http.conf里
ErrorDocument 404 /error_proc.php
这个办法要和生成页面的代码配合。有空整理一下发上来。
这个俺也没办法用...
如果我用有访问时再生成的办法不就变成缓存形式的了?
create_html.php用来判断静态页是否存在...不存在就生成..存在就直接跳过去
那样不是还得开一次数据库?
这样你的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部分就可以用来放准备用于判断程序与参数的部分,这个就要你自已去分析定义了。
对于像DISCUZ之类的论坛而言,缓冲的概念与处理思路又不同了。
俺用的虚拟主机...
看了三遍...还是有些不懂...呵呵
简单的说就是在http.conf里加那一句。
我问过几家,有的支持有的不支持。
访问 -> 不存在HTML页 -> 404错误 -> 设置404错误系统自动跳到error.php页 -> 后面咋判断是哪一页没生成???是否判断是从哪个URL转过来的?? ->然后取出数据库中的内容生成相应的静态页
从没用404错误跳转...不懂...
我最早做的缓冲解决方案就是让PHP去判断是否有缓冲文件,在WIN32+APACHE+PHP的环境里,负载问题最明显。