超长文章的智能分页-支持HTML

来源:动网 时间:2008-03-20 13:21:00 

大概在九九年做游戏网站的时候,就对文章的发布感到麻烦,不过那会儿玩ASP不精。只是将就用着。在遇到长文件 10000 字时网页就是一大片长了。

去年,做一个通用的文章与新闻管理系统时,曾写了一段代码,用来分离。现在贴出来。

要说明的是:

我的文章 录入界面是基于WEB的HEMLEDITOR,就像这里的ABC代码差不多。所以实际提交的是HTML格式的文本。对HTML做了相应的处理,不会由HTML代码中切开。

这里另一位兄弟曾发表过一个,原理一样,不过我没仔细看过,不知有啥不同。

代码如下:

'Request Form Item
I_Forder = Request.Form ("I_Folder")
I_Topic = Request.Form ("I_Topic")
I_Title = htmlencode(Request.Form ("I_Title"))
I_Body = Request.Form ("body")
I_Source = Request.Form ("I_Source")
I_Keyword= htmlencode(Request.Form ("I_Keyword"))
I_ISHOT = request.form("ishot")
if i_ishot = "" then i_ishot="N"
i_ispic = request.form("ispic")
if i_ispic = "" then i_ispic ="N"
i_pic = request.form("InsertImage")
i_body = replace(i_body,"contentEditable=true","contentEditable=false")

'Check Input
'......
'Get Pages ,B = Body
B_Len = Len(I_Body)
B_Pages = 1
'T = Temp
T_Loop = true

Do While T_Loop '这里loop多次,每4000分一页,算出页码并加入库。
If B_Len > 4000 then
N_Body = Left(I_Body,4000) 'N = New
'If "<P" in N_Body,Else ">" in N_Body
If Instrrev(N_Body,"<P") > 0 and (Len(N_Body) - Instrrev(N_Body,"<P"))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,"<P")-1)
else if Instrrev(N_Body,"  ") > 0 and (Len(N_Body) - Instrrev(N_Body,"  "))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,"  ")-1)
Else If Instrrev(N_Body,"。") > 0 and (Len(N_Body) - Instrrev(N_Body,"。"))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,"。"))
Else If Instrrev(N_Body,";") > 0 and (Len(N_Body) - Instrrev(N_Body,";"))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,";"))
else if Instrrev(N_Body,",") > 0 and (Len(N_Body) - Instrrev(N_Body,","))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,","))
else if Instrrev(N_Body,".") > 0 and (Len(N_Body) - Instrrev(N_Body,"."))< 400 then
N_Body = Left(N_Body,InstrRev(N_Body,"."))
end if
end if
End If
End If
end if
End if

N_Len = Len(N_Body)
I_Body = Mid(I_Body,N_Len+1)
B_Len = Len(I_Body)

Else
N_Body = I_Body
T_Loop = false
End If

'Add to database
Exec_prc_Content_Ins I_Forder,I_Topic,I_Title,I_Source,N_Body,i_ispic,i_pic,i_ishot,I_Keyword,B_Pages

'这里一个function,你可以自己处理,反正结果有两个,一个是body,一个是b_pages,就是页码。

B_Pages = B_Pages + 1 
Loop
%>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>asp之家</title>
<link rel="stylesheet" type="text/css" href="../CSS/default.css">
</head>

<body>
<div align="center">
<center>
<table border=1 width="300" height="128" bordercolor="#000000" cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tr>
<td bgcolor="#DEDBD6" height="31">
录入成功</td></tr><tr><td height="96">
<p align="center">此文章共分<%=B_Pages-1%>页
</td></tr></table>
</center>
</div>
<script> 
top.main_top.location.reload();
</script>
</body>
标签:分页,文章,html,asp
0
投稿

猜你喜欢

  • oracle命令行删除与创建用户的代码

    2009-03-02 10:54:00
  • wap开发 完整的WML文档结构详解

    2008-05-21 13:39:00
  • ASP应用:用stream读文件

    2007-09-24 13:33:00
  • 轻松掌握怎样从Windows命令行启动MySQL

    2009-02-23 17:18:00
  • 网页设计中的层次感

    2007-11-05 18:19:00
  • focus 进 textarea 元素后光标位置的修复

    2008-09-27 13:27:00
  • ASP 验证码的程序及原理

    2010-04-24 15:56:00
  • 打败 IE 的葵花宝典:CSS Bug Table

    2010-08-03 12:30:00
  • 给展示性图片增加提示工具条(黑白效果)

    2007-10-20 14:21:00
  • oracle sys_connect_by_path 函数 结果集连接

    2009-07-12 18:48:00
  • 十几行的超简日历组件(兼容FF)js源码

    2010-08-08 08:49:00
  • FrontPage XP设计教程4——Css样式表的应用

    2008-10-11 12:25:00
  • 滑动门代码 兼容IE7 IE6 FireFox Opera

    2008-06-07 13:56:00
  • WAP页面设计与实现小贴士

    2011-01-10 20:38:00
  • 如何用SQL语句来建表?

    2010-06-13 14:38:00
  • 只有mdf文件的数据库附加失败的修复方法分享(置疑、只读)

    2012-02-12 15:55:17
  • MSSQL安全设置的具体步骤和方法小结

    2012-07-11 15:54:11
  • MySQL的双机热备份安装和配置

    2012-01-05 19:00:58
  • 深入浅出的SQL server 查询优化

    2010-07-02 20:58:00
  • 正视WEB标准,一本全面的标准参考书

    2009-05-30 16:36:00
  • asp之家 网络编程 m.aspxhome.com