Asp用分页符实现长文章分页

时间:2007-10-19 18:35:00 

asp之家注:本文介绍的长文章分页方法不错,作者分析的很详细,用分页符来手动为长文章分页,应该是最好的长文章分页方法,我们不必担心会把一些代码分成两半,而且这种方法如果设置分页符位置得当是对搜索引擎优化(seo)有很大的帮助的!

长文章页用分页符来显示,想用ASP也实现这种功能,可发现只有根据字数进行分页的方法,但这种方法有一个BUG,就是如果你文章内容中如果有UBB或HTML代码,它很容易造成在[code][/code]之间进行分页,或者干脆就把[code]分解成了[co和de],这样文章显示就会出现错误。


以下几个步骤将能够完全实现。


第一步:


按照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。只是在文章添加时,在你想让它分页的地方加上分页符:“|||”


(当然这个符号你可以随便用,比如:[page]、&&&、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)


我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(display.asp),前三个都是不用处理的页面,看下面的图片我想一般的小鸟就会做了,关键是最后一个displasy.asp,所有实现分页的代码都在这里。


第二步:


在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:


<%
'这里要处理接收到的分页参数,以此来进行显示第几页的内容
'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的值:0
If Request("page")="" Then
pageNum=0
'否则就给变量赋值为传递来的page里的参数,来显示其他页
Else
pageNum=Request("page")
End if
%> <% '如果加了可选执行UBB代码,可以加上下面的代码
'rs("NoUBB")是数据库里关于禁用UBB的字段,0为禁用,1为执行
If rs("NoUBB")=0 then
'为避免和文章内容相连出现错误,用Replace函数把分页代码“|||”的前后各加一个全角的
'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 then
Content=Replace((ubb(rs("content"))),"|||"," ||| ")
End if
%>
<% '这里就是关键了
'我们用split函数将文章分段取出存入变量content
ContentStr=split(Content,"|||")
'按照刚才从URL参数中取得的要显示那页的那个变量,就循环显示一页
For i=pageNum to pageNum
%>
<!--这里将是文章正文内容-->
<%=ContentStr %>
<% Next %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">本文共分
<%
'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1
For p = 0 to ubound(ContentStr)
'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page %>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a> <% Next %>页

很简单吧,要是把注释都删除,才15行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。

已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把|||的数量加大比如:||||||,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了。

标签:长文章,分页
0
投稿

猜你喜欢

  • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别

    2012-06-06 19:38:28
  • 正则表达式字面量在ECMAScript5中的变化

    2012-04-26 16:23:16
  • 简单获取键盘的KeyCode

    2008-04-18 12:37:00
  • VS2008 和.NET 3.5 Beta2常见问题的解决方案

    2007-09-23 12:33:00
  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    2012-01-05 18:57:19
  • 网页版权的正确写法

    2007-09-22 09:13:00
  • 一个小时内学习 SQLite 数据库

    2012-05-22 18:51:30
  • 我的页面制作方法

    2008-03-23 13:51:00
  • asp Http_Referer,Server_Name和Http_Host

    2011-03-29 11:12:00
  • 无忧贴子管理器(ListView组件)

    2009-01-02 17:56:00
  • 如何利用ASP实现邮箱访问

    2007-09-29 12:27:00
  • Overflow Auto && Position Relative

    2009-09-03 12:02:00
  • 一次MySQL性能优化实战

    2009-03-09 15:01:00
  • SQL Server数据库简体繁体数据混用的问题

    2008-12-05 16:07:00
  • asp自动生成javascript检验函数

    2009-01-21 19:40:00
  • oracle 下WITH CHECK OPTION用法

    2009-02-28 10:59:00
  • 悟道WEB标准:统一思想,遵循标准

    2009-10-11 16:38:00
  • sql添加数据后返回受影响行数据

    2011-11-03 17:18:18
  • 用ASP动态生成JS表单验证代码

    2007-09-30 20:38:00
  • JavaScript的私有成员

    2009-03-25 20:45:00
  • asp之家 网络编程 m.aspxhome.com