老话题,新问题:新闻分页,将一篇过长的文章分页,生成静态页面

老话题,新问题:新闻分页,将一篇过长的文章分页,生成静态页面。
问题来源于制作大型新闻文章管理系统,往往碰到文章超长的情况。
现在将他们生成静态页面没有什么问题,但是如何将它们按照某种规则,生成编号为20030405-1.htm 20030405-2.htm 20030405-3.htm这样的静态文件呢?

大家能理解吗?要不看看天极网的新闻的效果吧:
http://www.yesky.com/20030403/1660988.shtml

---------------------------------------------------------------

上次还是CSDN里的朋友回答的,我复制了下来。原文如下

利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。
很简单,在要截断的地方附近找下面的符号:
;’”?。!;'".!
如果后面存在

1<p>或<br/>就分页。主要是要研究文章的格式。   

if Request.ServerVariables("Content_Length") &gt; 0 then
content = Request.Form("textarea1")PageLength = 1000 '每页字数
CLength = Len(content)
PageCount = Int(Clength/PageLength) + 1 '计算页数dim PageArray
redim PageArray(PageCount)Seperator = Array(chr(13),chr(10),"。","!","?",";",",","”","’") '分隔符PageArray(0) = 0
Pos = 0
for j=0 to ubound(Seperator)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'PageArray(i)+900 附近位置是100字,1-999可调
while Pos &gt; 0 and Pos &lt; (i+1)PageLength and Pos &gt; iPageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wendif PageArray(i) &gt; 0 then
Response.Write "0:i¦ "&amp;PageArray(i)&amp;"<br/>"&amp;j&amp;":j"&amp;Seperator(j)&amp;"<br/>"
j = j + ubound(Seperator) + 1
end if
nextfor i=1 to PageCount-1
PageArray(i) = 0
Pos = 0
for j=0 to ubound(Seperator)
Pos = instr(PageArray(i-1)+950,content,Seperator(j))
while Pos &gt; 0 and Pos &lt; (i+1)PageLength and Pos &gt; iPageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wend
if PageArray(i) &gt; 0 then
Response.Write i&amp;":i¦ "&amp;PageArray(i)&amp;"<br/>"&amp;j&amp;":j"&amp;Seperator(j)&amp;"<br/>"
j = j + ubound(Seperator) + 1
end if
next
nextoutput = mid(content,1,PageArray(0))
output = replace(output,chr(13),"<br/>")
Response.Write "<br/><br/>第1段<br/>"
Response.Write outputfor i=1 to PageCount-2
output = mid(content,PageArray(i-1)+1,PageArray(i)-PageArray(i-1))
output = replace(output,chr(13),"<br/>")
Response.Write "<br/><br/>第"&amp;i+1&amp;"段<br/>"
Response.Write output
next'最后一段的输出就没写了else

1<form action="" id="form1" method="POST" name="form1">
2<textarea cols="120" id="textarea1" name="textarea1" rows="70">   
3</textarea>
4<input id="submit1" name="submit1" type="submit" value="Submit"/>
5</form>   

end if

 1  
 2  
 3\---------------------------------------------------------------   
 4  
 5定义有 每页面长度 MaxLength   
 6文本总长度 TotalLength   
 7扫描文章中每一个段尾处的硬回车   
 8并计算该处长度   
 9一旦超过 MaxLength 则分成第一页   
10删除此硬回车前的部分 重复上述操作。</p>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus