zoukankan      html  css  js  c++  java
  • ASP长文章内容自动分页函数

    <%
    Const maxPagesize=1000     '设置分页字数

    Function InsertPageBreak(strText)
    Dim strPagebreak,s,ss
    Dim i,IsCount,c,iCount,strTemp,Temp_String,Temp_Array
    strPagebreak="[hiweb_break]"
    s=strText
    If Len(s)<maxPagesize Then
       InsertPageBreak=s
    End If
    s=Replace(s, strPagebreak, "")
    s=Replace(s, "&nbsp;", "<&nbsp;>")
    s=Replace(s, "&gt;", "<&gt;>")
    s=Replace(s, "&lt;", "<&lt;>")
    s=Replace(s, "&quot;", "<&quot;>")
    s=Replace(s, "&#39;", "<&#39;>")
    If s<>"" and maxPagesize<>0 and InStr(1,s,strPagebreak)=0 then
       IsCount=True
       Temp_String=""
       For i= 1 To Len(s)
        c=Mid(s,i,1)
        If c="<" Then
         IsCount=False
        ElseIf c=">" Then
         IsCount=True
        Else
         If IsCount=True Then
          If Abs(Asc(c))>255 Then
           iCount=iCount+2
          Else
           iCount=iCount+1
          End If
          If iCount>=maxPagesize And i<Len(s) Then
           strTemp=Left(s,i)
           If CheckPagination(strTemp,"table|a|b>|i>|strong|div|span") then
            Temp_String=Temp_String & Trim(CStr(i)) & ","
            iCount=0
           End If
          End If
         End If
        End If
       Next
       If Len(Temp_String)>1 Then Temp_String=Left(Temp_String,Len(Temp_String)-1)
       Temp_Array=Split(Temp_String,",")
       For i = UBound(Temp_Array) To LBound(Temp_Array) Step -1
        ss = Mid(s,Temp_Array(i)+1)
        If Len(ss) > 380 Then
         s=Left(s,Temp_Array(i)) & strPagebreak & ss
        Else
         s=Left(s,Temp_Array(i)) & ss
        End If
       Next
    End If
    s=Replace(s, "<&nbsp;>", "&nbsp;")
    s=Replace(s, "<&gt;>", "&gt;")
    s=Replace(s, "<&lt;>", "&lt;")
    s=Replace(s, "<&quot;>", "&quot;")
    s=Replace(s, "<&#39;>", "&#39;")
    InsertPageBreak=s
    End Function

    Function CheckPagination(strTemp,strFind)
    Dim i,n,m_ingBeginNum,m_intEndNum
    Dim m_strBegin,m_strEnd,FindArray
    strTemp=LCase(strTemp)
    strFind=LCase(strFind)
    If strTemp<>"" and strFind<>"" then
       FindArray=split(strFind,"|")
       For i = 0 to Ubound(FindArray)
        m_strBegin="<"&FindArray(i)
        m_strEnd ="</"&FindArray(i)
        n=0
        do while instr(n+1,strTemp,m_strBegin)<>0
         n=instr(n+1,strTemp,m_strBegin)
         m_ingBeginNum=m_ingBeginNum+1
        Loop
        n=0
        do while instr(n+1,strTemp,m_strEnd)<>0
         n=instr(n+1,strTemp,m_strEnd)
         m_intEndNum=m_intEndNum+1
        Loop
        If m_intEndNum=m_ingBeginNum then
         CheckPagination=True
        Else
         CheckPagination=False
         Exit Function
        End If
       Next
    Else
       CheckPagination=False
    End If
    End Function

    Function ContentPagination(hiwebstr)
    Dim ContentLen, maxperpage, Paginate
    Dim arrContent, strContent, i
    Dim m_strFileUrl,m_strFileExt,ArticleID
    ArticleID=Request.QueryString("ID")
    strContent = InsertPageBreak(hiwebstr)
    ContentLen = Len(strContent)
    CurrentPage=Request.QueryString("Page")
    If CurrentPage="" Then CurrentPage=0
    If InStr(strContent, "[hiweb_break]") <= 0 Then
       ArticleContent = "<div id=""NewsContentLabel"" class=""NewsContent"">" & strContent & "</div><div id=""Message"" class=""Message""></div>"
    Else
       arrContent = Split(strContent, "[hiweb_break]")
       Paginate = UBound(arrContent) + 1
       If CurrentPage = 0 Then
        CurrentPage = 1
       Else
        CurrentPage = CLng(CurrentPage)
       End If
       If CurrentPage < 1 Then CurrentPage = 1
       If CurrentPage > Paginate Then CurrentPage = Paginate
       strContent = "<div id=""NewsContentLabel"" class=""NewsContent"">"& arrContent(CurrentPage - 1)

       ArticleContent = ArticleContent & strContent
       If UserArticle = True Then
        ArticleContent = ArticleContent & "</p></div><div id=""Message"" class=""Message""></div><p align=""center""><b>"
       Else
        ArticleContent = ArticleContent & "</p></div><p align=""center""><b>"
       End If
       If IsURLRewrite Then
        m_strFileUrl = ArticleID & "_"
       Else
        m_strFileExt = ""
        m_strFileUrl = "?id=" & ArticleID & "&Page="
       End If
       If CurrentPage > 1 Then
        If IsURLRewrite And (CurrentPage-1) = 1 Then
         ArticleContent = ArticleContent & "<a href="""& ArticleID & m_strFileExt & """>上一页</a>&nbsp;&nbsp;"
        Else
         ArticleContent = ArticleContent & "<a href="""& m_strFileUrl & CurrentPage - 1 & m_strFileExt & """>上一页</a>&nbsp;&nbsp;"
        End If
       End If
       For i = 1 To Paginate
        If i = CurrentPage Then
         ArticleContent = ArticleContent & "<font color=""red"">[" & CStr(i) & "]</font>&nbsp;"
        Else
         If IsURLRewrite And i = 1 Then
          ArticleContent = ArticleContent & "<a href="""& ArticleID & m_strFileExt & """>[" & i & "]</a>&nbsp;"
         Else
          ArticleContent = ArticleContent & "<a href="""& m_strFileUrl & i & m_strFileExt & """>[" & i & "]</a>&nbsp;"
         End if
        End If
       Next
       If CurrentPage < Paginate Then
        ArticleContent = ArticleContent & "&nbsp;<a href="""& m_strFileUrl & CurrentPage + 1 & m_strFileExt & """>下一页</a>"
       End If
       ArticleContent = ArticleContent & "</b></p>"
    End If
    Response.Write(ArticleContent)
    End Function
    %>

    ASP长文章内容自动分页函数

    主要功能:自动将长文章内容分页显示,可自由设定分页字数,且不会截断HTML代码。

    适用范围:文章内容自动分页插件适用于所有ASP程序。

    使用方法:

    1.下载附件中的文件,将它解压上传到您的网站根目录

    2.在需要分页的页面最顶部调用刚刚上传的文件。调用代码 
    <!--include file="ContentAutoPage.asp"-->

    3.在内容显示处 将原来的显示代码替换为: <%=ContentPagination(rs("变量字段"))%>。

  • 相关阅读:
    (四十九)android解决同一个界面上ScrollView和 ListView等可滚动控件滚动冲突问题
    (四十八)Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
    (四十七)属性动画Demo
    (四十六)一个属性动画的经典例子(让TextView中的数值从某一个值变成0再变到另一个值)
    (四十五)百度地图在android中的应用
    iOS 检查更新
    iOS Apple Pay
    iOS 获取emoji表情和拦截emoji表情
    iOS拨打电话的三种方式
    Swift
  • 原文地址:https://www.cnblogs.com/y0umer/p/3839438.html
Copyright © 2011-2022 走看看