生成静态系统的疑惑?求教各位同志
我在自己的机器WIN2000+PHP4.3.10+APACHE2上完成自己的个人网站系统,我想练习把整个站点系统生成静态系统,遇到以下问题:
1,用什么方法一次把所有动态页面生成静态页面?
2,若不能一次性生成,那把带$_GET变量的页面生成的静态页面该如何组织?使生成的静态页面和链接点轻松吻合。
希望得到各位大虾的详尽赐教,小弟不胜感激。(这个问题困扰我几天了,我在网上转悠了很多次,没见这方面的资料。)知道的兄弟最好能给出代码,也可以告诉我解答思路或资料链接点。谢谢!
问题点数:0、回复次数:9Top
1 楼love01px(JAVA CUP)回复于 2005-06-02 23:45:33 得分 0
用ob_系列"输出控制函数"函数
ob_start();
............
............
//捕捉输出
$content=ob_get_contents();
ob_end_clean();
//再写入文件
function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($file, $mode);
if (!$fp) return false;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
return true;
}
wfile("文件名",$content);
或者用模板
http://www.phpe.net/?n=ReadArticle&a=7
http://www.phpe.net/?n=ReadArticle&a=220
Top
2 楼love01px(JAVA CUP)回复于 2005-06-03 01:10:56 得分 0
最好的模板
参考:超越模板引擎
http://www.phpe.net/articles/384.shtmlTop
3 楼loveconan(放牛娃娃)回复于 2005-06-03 02:41:01 得分 0
居然这么多人迷信Smarty是最好的……Top
4 楼neter_007()回复于 2005-06-03 19:19:53 得分 0
to loveconan(放牛娃娃) 你的回答跑题了
to love01px() 谢谢你的回复,我知道 单个页面 可以用ob_系列"输出控制函数"函数或模板实现静态化,
但我转不过弯来的是:
比如在一个页面上有个连结点样式<a href=newshow.php?id=224>NEWS</a>(此页面也模板化生成了静态页面)
我把newshow.php?id=224也已经模板化生成了静态页面为../20050602/224.html了,
我的问题就是怎样把这个新生成的(../20050602/224.html)页面和原连结点 NEWS 链接起来,使页面连接点变成<a href=../20050602/224.html>NEWS</a>
像sports.sina.com.cn中的新闻列表的样式,http://sports.sina.com.cn/g/2005-06-03/19161595137.shtml
我也不知道我描述清楚了没,也不知道可不可以实现Top
5 楼xuzuning(唠叨)回复于 2005-06-04 10:33:26 得分 0
在写入文件时做一次串替换
$html = preg_replace("/newshow\.php\?id=(\d+)/","../20050602/\\1.html",$html);Top
6 楼neter_007()回复于 2005-06-04 11:44:05 得分 0
to xuzuning(唠叨):
谢谢大兄弟的热心回复,我想知道你对这样的问题整个处理过程,可以麻烦你写一下整个处理流程吗?我真的很想知道,再谢!(如果有更好的实现方法,万望不惜赐教,不要局限于我的思路)Top
7 楼lanyd(寻找甘当科学家的女人)回复于 2005-06-04 12:02:07 得分 0
其实原理很简单,就是将传过来的网址进行解析,如果解析后的静态网页存在就直接跳转到此网页,如果不存在,就先输出此静态文件再跳转到它。
Top
8 楼raid79(山鹰)回复于 2005-06-04 12:42:09 得分 0
markTop
9 楼snowleaf(只知一叶)回复于 2005-06-04 15:13:19 得分 0
不错Top




