ASP新闻分页,将一篇过长的文章分页,生成静态页面
2018-09-06 12:47
上次还是CSDN里的朋友回答的,我复制了下来。原文如下
===========================
利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。
很简单,在要截断的地方附近找下面的符号:
;”?。!;.!
如果后面存在<p>或<br>就分页。主要是要研究文章的格式。
<%
if Request.ServerVariables(Content_Length) > 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 > 0 and Pos < (i+1)*PageLength and Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wendif PageArray(i) > 0 then
Response.Write 0:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<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 > 0 and Pos < (i+1)*PageLength and Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wend
if PageArray(i) > 0 then
Response.Write i&:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<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>第&i+1&段<br>
Response.Write output
next最后一段的输出就没写了else
%>
<FORM action= method=POST id=form1 name=form1>
<TEXTAREA rows=70 cols=120 id=textarea1 name=textarea1>
</TEXTAREA>
<INPUT type=submit value=Submit id=submit1 name=submit1>
</FORM>
<%end if%>
---------------------------------------------------------------
定义有 每页面长度 MaxLength
文本总长度 TotalLength
扫描文章中每一个段尾处的硬回车
并计算该处长度
一旦超过 MaxLength 则分成第一页
删除此硬回车前的部分 重复上述操作。
文章标题:ASP新闻分页,将一篇过长的文章分页,生成静态页面
文章链接:http://soscw.com/index.php/essay/10683.html