豹子 2007-6-23 10:29
超长字符的智能分页-支持HTML
大概在九九年做游戏网站的时候,就对文章的发布感到麻烦,不过那会儿玩ASP不精。只是将就用着。在遇到长文件 10000 字时网页就是一大片长了。
v].AW
bz`WF
A[.v9u ^}
juw ~1q[9`H
v
d5g){
z6db \9S
去年,做一个通用的文章与新闻管理系统时,曾写了一段代码,用来分离。现在贴出来。
;Co_;pX5UA
:rFI|m w
要说明的是: 6kJ%rX,l8mf.b
aa:C%n Z,n,K%o9q:k
我的文章 录入界面是基于WEB的HEMLEDITOR,就像这里的ABC代码差不多。所以实际提交的是HTML格式的文 本。
%B)m"C3gls&e$KM6V
$?3}!PT'p
对HTML做了相应的处理,不会由HTML代码中切开。
l|Y+bF-|%X o qa8bY
Q4dG,Y;_0f
_UO
这里另一位兄弟曾发表过一个,原理一样,不过我没仔细看过,不知有啥不同。
#s6c:^ O0ME
5se1^@Gw&A*n
.G"P5qN0t }#mt+C`
代码如下:
NG#dx4cTFG
--------------------------------------
Imw:l m*F
'Request Form Item
YDm
J:F&n]2b4V;Q
I_Forder = Request.Form ("I_Folder") ~?#n
l]WOD
I_Topic = Request.Form ("I_Topic")
)Q!h T/kW+G;p
I_Title = htmlencode(Request.Form ("I_Title")) B/W6a#pu/v7m/X
I_Body = Request.Form ("body")
l]U5K:^
I_Source = Request.Form ("I_Source")
e9Yqr2\F
I_Keyword= htmlencode(Request.Form ("I_Keyword"))
.n2a9q0eJD*w4A
I_ISHOT = request.form("ishot")
^s}T{O,N;U~k
if i_ishot = "" then i_ishot="N"
k4j"b)G$SH
i_ispic = request.form("ispic")b C_
zb8x5Z7l:ra
if i_ispic = "" then i_ispic ="N"
{PI!kJA
i_pic = request.form("InsertImage")
%F0Je+EN0u
i_body = replace(i_body,"contentEditable=true","contentEditable=false")
j6^gK%{:ktt
L$Vp0dQE:i
'Check Input"}vI!UA Q9{
'......
'p2eBWf}'mI
bNbxv1O0U.tL'y
'Get Pages ,B = Bodyw9rx+J!yr
B_Len = Len(I_Body)
%X`i7R#D5]
B_Pages = 1
*xJ0p(r {kHv
'T = Tempwh8QV5Qsn&p\0|
T_Loop = true R'mf0_k y[pj;U
)}wl4i4X;T
c+f}
Do While T_Loop '这里loop多次,每4000分一页,算出页码并加入库。+U/r/ySWKX iJ9\
If B_Len 4000 then2vM|e|D@
N_Body = Left(I_Body,4000) 'N = New
F$Of/n.P\5BkI
'If "P" in N_Body,Else "" in N_Body
YjD7{'mU8I8h
If Instrrev(N_Body,"P") 0 and (Len(N_Body) - Instrrev(N_Body,"P")) 400 then`G3viyQ`
N_Body = Left(N_Body,InstrRev(N_Body,"P")-1)
Fi1r/a@7a(F#BZ*k
else if Instrrev(N_Body," ") 0 and (Len(N_Body) - Instrrev(N_Body," ")) 400 then
,Cq
Y3ybp
N_Body = Left(N_Body,InstrRev(N_Body," ")-1)