超长字符的智能分页-支持HTML
2008-02-23 09:27:49来源:互联网 阅读 ()
大概在九九年做游戏网站的时候,就对文章的发布感到麻烦,不过那会儿玩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>新建网页 1</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> |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ASP的对象结构
下一篇:关于inc文件的解释
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash