生成静态页面,回答详细的话另给分!
比如我想发帖时生成静态页
1.xml
1.xml内容包括
<content>发帖</content>
如果有人回帖
<reply>回帖</reply>
是在<content>发帖</content>后追加形式加入回帖内容,
还是重新再
<content>发帖</content>
<reply>回帖</reply>
生成1.xml
问题点数:20、回复次数:41Top
1 楼zhiin(┈ Jcan ┈)回复于 2005-05-12 12:22:35 得分 5
帮顶Top
2 楼quxin8110(quxin)回复于 2005-05-12 13:24:31 得分 0
我也想知道怎么把一个文件里的东西全部读出,显示在浏览器中啊!Top
3 楼wlnh420(野狼)回复于 2005-05-12 15:22:35 得分 0
dingTop
4 楼yingying0808(盈盈)回复于 2005-05-12 17:10:09 得分 2
关注Top
5 楼wlnh420(野狼)回复于 2005-05-12 18:02:01 得分 0
如果采用重新生成静态页的话,回复的帖数多了(像天涯那样不分页显示帖子,而且有的达到上千条回复,采用重新生成的话),是不是很浪费资源和时间?
不知道csdn怎么做的
Top
6 楼cokeyang(西北狼)回复于 2005-05-13 00:22:32 得分 0
生成XML就直接用PHP来拼XML格式了!
显示的时候就用xsl,相当于一个模板功能!
你看看这个http://community.csdn.net/Expert/Xsl/2.xslTop
7 楼wlnh420(野狼)回复于 2005-05-13 09:07:01 得分 0
每回复一贴就重新生成xml吗?
1000人回复就从头到尾重新生成1000次呢,还是回复一次追加一次(怎么追加)呢?
谁能给详细一点的解释?谢谢!Top
8 楼windust3313(蓝天)回复于 2005-05-13 09:10:44 得分 0
不用那么麻烦呀,可以直接改服务器上的配置
你可以去看看这个论坛:bbs.51huaqian.com这是用PHP做,你看看是不是要实现这种功能,在地址栏里显示为 .html 的Top
9 楼mingday(小山)回复于 2005-05-13 09:11:02 得分 0
好像就是回复一次生成一次Top
10 楼wlnh420(野狼)回复于 2005-05-13 10:35:06 得分 0
windust3313(蓝天)
可你说的根本没有减轻服务器的负担!Top
11 楼xiaopar(心晴)回复于 2005-05-13 11:55:14 得分 0
我是每发布一条重新生成一次的Top
12 楼zhiin(┈ Jcan ┈)回复于 2005-05-13 12:58:40 得分 0
晕啊 大家怎么都在答非所问
如果不知道就别乱扯话题~~~~~~~`
人家问的明明很清楚:
***********************************************
* 每回复一贴就重新生成xml吗?
* 1000人回复就从头到尾重新生成1000次呢,还是回复一次追加一次(怎么追加)呢?
* 谁能给详细一点的解释?谢谢!
Top
13 楼yingying0808(盈盈)回复于 2005-05-13 13:31:24 得分 0
应该是每次重新产生一次。
假如有1000个回复的话,那么他的浏览量就非常的大了,要是动态页面,那才是消耗资源,产生静态页面就是减轻服务器负担。Top
14 楼lee3f(自由鱼)回复于 2005-05-13 15:48:01 得分 0
GZTop
15 楼wlnh420(野狼)回复于 2005-05-14 09:32:17 得分 0
ding yi xiaTop
16 楼hahawen(变态的大龄青年)回复于 2005-05-14 10:42:09 得分 2
还要看你的xml文件时怎么做的了, 如果是标准的xml文件, 可以用dom来帮你实现就可以了.用dom解析,然后添加dom节点,在让dom自动帮你保存成文件旧可以了.
但是前提是你的xml要是标准格式.Top
17 楼ddboy(留言版版主)回复于 2005-05-14 13:47:58 得分 0
关键是XML要规范,但本人并不建议这种做法,毕竟目前的搜索引擎对XML支持有限...
你做一个这种论坛恐怕永远也不会有一千人回复,所以也不必考虑性能了!
Top
18 楼wlnh420(野狼)回复于 2005-05-14 16:50:17 得分 0
hahawen(变态的大龄青年) ( )
谢谢,稍微懂你你的意思,能不能具体一点
ddboy(留言版版主)
随达不到1000,但性能应该考虑
Top
19 楼phpsessid(风随影动)回复于 2005-05-14 17:12:04 得分 2
建议使用新生成文件的方式,因为:
根据各位的讨论,确定楼主的系统访问量非常大,
1,以最大1000条回复算,每条回复50个汉字,如果使用追加方式,那么生成的文件最终为48k左右。
2,既然访问量大,那么同时回复的帖子也多,如果有10个帖子达到了平均值24K,并且被同时回复那么服务器开销可想而知了。
基于php的xml处理能力比较弱,本人还是觉得新生成文件的方式较好。Top
20 楼zhiin(┈ Jcan ┈)回复于 2005-05-15 01:10:23 得分 0
请我们的hahawen(变态的大龄青年)谈谈!!
关注中...........Top
21 楼wlnh420(野狼)回复于 2005-05-15 11:22:03 得分 0
回复人: phpsessid()
谢谢建议!
Top
22 楼wlnh420(野狼)回复于 2005-05-16 13:18:10 得分 0
ding yi xiaTop
23 楼zhiin(┈ Jcan ┈)回复于 2005-05-16 20:38:01 得分 0
继续关注Top
24 楼Php_Little_Bear(菜子)回复于 2005-05-17 08:50:15 得分 0
最近,高手都销声匿迹了。Top
25 楼zhiin(┈ Jcan ┈)回复于 2005-05-17 18:13:49 得分 0
一直关注Top
26 楼zhiin(┈ Jcan ┈)回复于 2005-05-18 13:53:56 得分 0
........Top
27 楼ddboy(留言版版主)回复于 2005-05-18 16:16:30 得分 0
都不知道你想知道什么,如果是按CSDN的模式的话,其实根本不用考虑得那么复杂,因为CSDN以追加的形式来写入。
Top
28 楼zhiin(┈ Jcan ┈)回复于 2005-05-18 16:25:35 得分 0
TO ddboy(留言版版主):
楼主问的就是,如果以追加形式写入文本!!!!!
可以给段代码看看吗?
Top
29 楼syre(神仙)回复于 2005-05-18 17:11:15 得分 0
fopen($f, 'a');Top
30 楼syre(神仙)回复于 2005-05-18 17:12:53 得分 0
另外
文件是不能同时写入的
如果加锁,在同时更新的情况下可能会更慢Top
31 楼zhiin(┈ Jcan ┈)回复于 2005-05-20 14:31:56 得分 0
UPTop
32 楼chon81(当我遇上你…)回复于 2005-05-20 14:58:03 得分 2
应该要重新再写入文件吧。
因为xml里的只能有一个最外层标签,
而<reply>回帖</reply>应该也要写到最外层标签里面吧。
不能直接追加吧。
最好的办法就是把文件指针移到最后一个<reply>回帖</reply>的后面,
然后从再写入新的<reply>回帖</reply>,并写入外层的结束标签。
如:
原来
<Topic>
<content>发帖</content>
<reply>回帖</reply>
</Topic>
回复时:
<Topic>
<content>发帖</content>
<reply>回帖</reply><!-- 从这里开始写 -->
<reply>回帖</reply>
</Topic>
这个方法可以减少一读入的数据量。但会增加了处理过程和代码的复杂度Top
33 楼zhiin(┈ Jcan ┈)回复于 2005-05-20 15:03:00 得分 0
最好的办法就是把文件指针移到最后一个<reply>回帖</reply>的后面,
然后从再写入新的<reply>回帖</reply>,并写入外层的结束标签。
----------------------------------------------------------------
TO chon81(当我遇上你…) :
靠, 说得轻松, 你把程序实现给大家看看啊!Top
34 楼zhiin(┈ Jcan ┈)回复于 2005-05-21 14:45:35 得分 0
UPTop
35 楼phpsessid(风随影动)回复于 2005-05-21 15:07:39 得分 2
to: zhiin() ouk.cn ()
最好的办法就是把文件指针移到最后一个<reply>回帖</reply>的后面,
然后从再写入新的<reply>回帖</reply>,并写入外层的结束标签。
----------------------------------------------------------------
TO chon81(当我遇上你…) :
靠, 说得轻松, 你把程序实现给大家看看啊!
-----------------------------------------
不要靠吗,靠什么靠?高素质,高姿态。。。。
easy...
$replyString = "<reply>asdfjhasjdhfkjashdfjhasjdhfjk</reply>";
$fHandle = @fopen("aaaaa.xml", "r+b") or die("ERROR @ line 2");
while(!feof($fHandle)) {
$string = fgets($fHandle, 1024);
}
$arr = explode("</Topic>",$string);
//--------------------------------------------
$newContent = $arr[0].$replyString."</Topic>"; //把内容写进去吧
Top
36 楼loveconan(放牛娃娃)回复于 2005-05-21 15:08:35 得分 2
正常非封闭论坛浏览和回复比例大概5:1左右
基本都是靠完全生成的,可以看看村里的一个精华贴
http://www.phpx.com/happy/top92092.html
挺好看的Top
37 楼zhiin(┈ Jcan ┈)回复于 2005-05-21 20:04:29 得分 0
TO phpsessid()
晕 你的还是相当于重新生成的``````
你的是把文件指针移到最后一个<reply>回帖</reply>的后面这样加入的吗?Top
38 楼phpsessid(风随影动)回复于 2005-05-22 00:00:49 得分 0
no no
看你文件的打开方式 是a 还是 wTop
39 楼chon81(当我遇上你…)回复于 2005-05-22 08:47:08 得分 2
谢谢phpsessid
最近比较忙,没有上来看贴Top
40 楼red_free(酒肉穿肠过,脂肪腰间留)回复于 2005-05-22 18:56:10 得分 1
我说得不知道对不对,我做asp得,才开始接触php,asp里使用fso文件操作系统,往htm里面写文本行,xml也差不多。不知道说清楚了没有Top
41 楼wlnh420(野狼)回复于 2005-05-23 13:15:49 得分 0
3x,我想知道sohu是怎么办到的^_^Top




