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行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。
已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把|||的数量加大比如:||||||,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了。


猜你喜欢
- 前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升
- 代码如下: public function fillzero(l1) if len(l1)=1 then fillzero="0&
- 文中用到了BeautifulSoup这个库, 目的是处理html文档分析的, 因为我只是提取了title的关键字,所以可以用正则表达式代替,
- 首先这个是7米当时问我一个问题,不过可惜我不知道怎么解决,后来知道解决方法很简单,只是添加了一个margin-top:-1em就
- 一个出错的例子#coding:utf-8s = u'中文'f = open("test.txt",&qu
- <script type="text/vbscript">
- 问题在使用matplotlib作图的时候,有的时候会遇到画图时坐标轴重叠,显示不全和图片保存时不完整的问题。如下:解决方案画图时重叠或者显示
- 首先要有一个概念:并不是一个语言支持函数,这个语言就可以叫做“函数式语言”。函数式语言中的函数(function),除了能被调用之外,还具有
- 引言RunLoop:又叫运行循环机制,在iOS中的两大机制之一。并不是只有iOS有Runloop其他语言也有,他们的方式不太一样,但是核心都
- 一、hashlib模块什么是哈希模块:hashlib模块是一种加密模块,内部存有多种加密类型加密的作用:可将明文数据进行加密,转换成一串密文
- 最近开发项目中又重新拿起了Mysql,在搭建环境的时候遇到了中文乱码问题。下面我把我的解决方式跟大家分享一下 1、通过show VARIAB
- 简介表单的操作是Web程序开发中最核心的模块之一,绝大多数的动态交互功能都是通过表单的形式实现的。本文会教大家实现简单的表单操作。普通表单提
- 在 Python 中一切都是对象。如果要在 Python 中表示一个对象,除了定义 class 外还有哪些方式
- 以前我浏览博客的时候记得别人说过,BCELoss与CrossEntropyLoss都是用于分类问题。可以知道,BCELoss是Binary
- 本文研究的主要内容是Python中装饰器相关学习总结,具体如下。装饰器(decorator)功能引入日志函数执行时间统计执行函数前预备处理执
- 摘要:Read Committed事务运行期间,只要别的事务修改数据并提交,即可读到人家修改的数据,所以会有不可重复读、幻读问题。ReadV
- 本例使用 QQ邮箱测试,需要打开 QQ邮箱的 smtp协议,获取授权码代码内容如下:#!/usr/bin/env python# _*_ c
- 1、ThreadPoolExecutor多线程<1>为什么需要线程池呢?对于io密集型,提高执行的效率。线程的创建是需要消耗系统
- 这篇文章主要介绍了JavaScript回调函数callback用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 前言pycharm是python的一个商业的集成开发工具,本人感觉做python开发还是很好用的,django是一个很流行的python w