校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ASP 高級模板引擎實現類

ASP 高級模板引擎實現類

熱門標簽:地圖標注服務哪家好 徐州人工智能電銷機器人好用嗎 騰訊地圖標注商戶關閉 地圖標注宅基地 西寧公司外呼系統平臺 長沙防封電銷卡品牌 武漢營銷電話機器人軟件 智能電銷機器人適用于哪些行業 外呼系統還用卡么
復制代碼 代碼如下:

Class template

    Private c_Char, c_Path, c_FileName, c_Content, c_PageUrl, c_CurrentPage, c_PageStr, ReplacePageStr
    Private TagName

    ' ***************************************
    '    設置編碼
    ' ***************************************
    Public Property Let Char(ByVal Str)
        c_Char = Str
    End Property
    Public Property Get Char
        Char = c_Char
    End Property

    ' ***************************************
    '    設置模板文件夾路徑
    ' ***************************************
    Public Property Let Path(ByVal Str)
        c_Path = Str
    End Property
    Public Property Get Path
        Path = c_Path
    End Property

    ' ***************************************
    '    設置模板文件名
    ' ***************************************
    Public Property Let FileName(ByVal Str)
        c_FileName = Str
    End Property
    Public Property Get FileName
        FileName = c_FileName
    End Property

    ' ***************************************
    '    獲得模板文件具體路徑
    ' ***************************************
    Public Property Get FilePath
        If Len(Path) > 0 Then Path = Replace(Path, "\", "/")
        If Right(Path, 1) > "/" Then Path = Path "/"
        FilePath = Path FileName
    End Property

    ' ***************************************
    '    設置分頁URL
    ' ***************************************
    Public Property Let PageUrl(ByVal Str)
        c_PageUrl = Str
    End Property
    Public Property Get PageUrl
        PageUrl = c_PageUrl
    End Property

    ' ***************************************
    '    設置分頁 當前頁
    ' ***************************************
    Public Property Let CurrentPage(ByVal Str)
        c_CurrentPage = Str
    End Property
    Public Property Get CurrentPage
        CurrentPage = c_CurrentPage
    End Property

    ' ***************************************
    '    輸出內容
    ' ***************************************
    Public Property Get Flush
        Response.Write(c_Content)
    End Property

    ' ***************************************
    '    類初始化
    ' ***************************************
    Private Sub Class_Initialize
        TagName = "pjblog"
        c_Char = "UTF-8"
        ReplacePageStr = Array("", "")
    End Sub

    ' ***************************************
    '    過濾沖突字符
    ' ***************************************
    Private Function doQuote(ByVal Str)
        doQuote = Replace(Str, Chr(34), """)
    End Function

    ' ***************************************
    '    類終結
    ' ***************************************
    Private Sub Class_Terminate
    End Sub

    ' ***************************************
    '    加載文件方法
    ' ***************************************
    Private Function LoadFromFile(ByVal cPath)
        Dim obj
        Set obj = Server.CreateObject("ADODB.Stream")
            With obj
             .Type = 2
                .Mode = 3
                .Open
                .Charset = Char
                .Position = .Size
                .LoadFromFile Server.MapPath(cPath)
                LoadFromFile = .ReadText
                .close
            End With
        Set obj = Nothing
    End Function

    ' ***********************************************
    '    獲取正則匹配對象
    ' ***********************************************
    Public Function GetMatch(ByVal Str, ByVal Rex)
        Dim Reg, Mag
        Set Reg = New RegExp
        With Reg
            .IgnoreCase = True
            .Global = True
            .Pattern = Rex
            Set Mag = .Execute(Str)
            If Mag.Count > 0 Then
                Set GetMatch = Mag
            Else
                Set GetMatch = Server.CreateObject("Scripting.Dictionary")
            End If
        End With
        Set Reg = nothing
    End Function

    ' ***************************************
    '    打開文檔
    ' ***************************************
    Public Sub open
        c_Content = LoadFromFile(FilePath)
    End Sub

    ' ***************************************
    '    緩沖執行
    ' ***************************************
    Public Sub Buffer
        c_Content = GridView(c_Content)
        Call ExecuteFunction
    End Sub

    ' ***************************************
    '    GridView
    ' ***************************************
    Private Function GridView(ByVal o_Content)
        Dim Matches, SubMatches, SubText
        Dim Attribute, Content
        Set Matches = GetMatch(o_Content, "\" TagName "\:(\d+?)(.+?)\&;([\s\S]+?)\/" TagName "\:\1\&;")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                Attribute = SubMatches.SubMatches(1)     ' kocms
                Content = SubMatches.SubMatches(2)     ' Columns>.../Columns>
                SubText = Process(Attribute, Content)     ' 返回所有過程執行后的結果
                o_Content = Replace(o_Content, SubMatches.value, "" SubText(2) SubText(0) ">" SubText(1) "/" SubText(2) ">", 1, -1, 1)                                            ' 替換標簽變量
            Next
        End If
        Set Matches = Nothing
        If Len(ReplacePageStr(0)) > 0 Then                ' 判斷是否標簽變量有值,如果有就替換掉.
            o_Content = Replace(o_Content, ReplacePageStr(0), ReplacePageStr(1), 1, -1, 1)
            ReplacePageStr = Array("", "")                ' 替換后清空該數組變量
        End If
        GridView = o_Content
    End Function

    ' ***************************************
    '    確定屬性
    ' ***************************************
    Private Function Process(ByVal Attribute, ByVal Content)
        Dim Matches, SubMatches, Text
        Dim MatchTag, MatchContent
        Dim datasource, Name, Element, page, id
        datasource = "" : Name = "" : Element = "" : page = 0 : id = ""
        Set Matches = GetMatch(Attribute, "\s(.+?)\=\""(.+?)\""")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                MatchTag = SubMatches.SubMatches(0)                                ' 取得屬性名
                MatchContent = SubMatches.SubMatches(1)                            ' 取得屬性值
                If Lcase(MatchTag) = "name" Then Name = MatchContent            ' 取得name屬性值
                If Lcase(MatchTag) = "datasource" Then datasource = MatchContent' 取得datasource屬性值
                If Lcase(MatchTag) = "element" Then Element = MatchContent        ' 取得element屬性值
                If Lcase(MatchTag) = "page" Then page = MatchContent            ' 取得page屬性值
                If Lcase(MatchTag) = "id" Then id = MatchContent                ' 取得id屬性值
            Next
            If Len(Name) > 0 And Len(MatchContent) > 0 Then
                Text = Analysis(datasource, Name, Content, page, id)            ' 執行解析屬性
                If Len(datasource) > 0 Then Attribute = Replace(Attribute, "datasource=""" datasource """", "")
                If page > 0 Then Attribute = Replace(Attribute, "page=""" page """", "")
                Attribute = Replace(Attribute, "name=""" Name """", "", 1, -1, 1)
                Attribute = Replace(Attribute, "element=""" Element """", "", 1, -1, 1)
                Process = Array(Attribute, Text, Element)
            Else
                Process = Array(Attribute, "", "div")
            End If
        Else
            Process = Array(Attribute, "", "div")
        End If
        Set Matches = Nothing
    End Function

    ' ***************************************
    '    解析
    ' ***************************************
    Private Function Analysis(ByVal id, ByVal Name, ByVal Content, ByVal page, ByVal PageID)
        Dim Data
        Select Case Lcase(Name)                                                    ' 選擇數據源
            Case "loop" Data = DataBind(id, Content, page, PageID)
            Case "for" Data = DataFor(id, Content, page, PageID)
        End Select
        Analysis = Data
    End Function

    ' ***************************************
    '    綁定數據源
    ' ***************************************
    Private Function DataBind(ByVal id, ByVal Content, ByVal page, ByVal PageID)
        Dim Text, Matches, SubMatches, SubText
        Execute "Text = " id "(1)"                                            ' 加載數據源
        Set Matches = GetMatch(Content, "\Columns\&;([\s\S]+)\\/Columns\&;")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                SubText = ItemTemplate(SubMatches.SubMatches(0), Text, page, PageID)' 執行模塊替換
                Content = Replace(Content, SubMatches.value, SubText, 1, -1, 1)
            Next
            DataBind = Content
        Else
            DataBind = ""
        End If
        Set Matches = Nothing
    End Function

    ' ***************************************
    '    匹配模板實例
    ' ***************************************
    Private Function ItemTemplate(ByVal TextTag, ByVal Text, ByVal page, ByVal PageID)
        Dim Matches, SubMatches, SubMatchText
        Dim SecMatch, SecSubMatch
        Dim i, TempText
        Dim TextLen, TextLeft, TextRight
        Set Matches = GetMatch(TextTag, "\ItemTemplate\&;([\s\S]+)\\/ItemTemplate\&;")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                SubMatchText = SubMatches.SubMatches(0)
                ' ---------------------------------------------
                '    循環嵌套開始
                ' ---------------------------------------------
                SubMatchText = GridView(SubMatchText)
                ' ---------------------------------------------
                '    循環嵌套結束
                ' ---------------------------------------------
                If UBound(Text, 1) = 0 Then
                    TempText = ""
                Else
                    TempText = ""
                    ' -----------------------------------------------
                    '    開始分頁
                    ' -----------------------------------------------
                    If Len(page) > 0 And page > 0 Then
                        If Len(CurrentPage) = 0 Or CurrentPage = 0 Then CurrentPage = 1
                        TextLen = UBound(Text, 2)
                        TextLeft = (CurrentPage - 1) * page
                        TextRight = CurrentPage * page - 1
                        If TextLeft 0 Then TextLeft = 0
                        If TextRight > TextLen Then TextRight = TextLen
                        c_PageStr = MultiPage(TextLen + 1, page, CurrentPage, PageUrl, "float:right", "", False)

                        If Int(Len(c_PageStr)) > 0 Then
                            ReplacePageStr = Array("page:" Trim(PageID) "/>", c_PageStr)
                        Else
                            ReplacePageStr = Array("page:" Trim(PageID) "/>", "")
                        End If
                    Else
                        TextLeft = 0
                        TextRight = UBound(Text, 2)
                    End If

                    For i = TextLeft To TextRight
                        TempText = TempText ItemReSec(i, SubMatchText, Text)        ' 加載模板內容
                    Next
                End If
            Next
            ItemTemplate = TempText
        Else
            ItemTemplate = ""
        End If
        Set Matches = Nothing
    End Function

    ' ***************************************
    '    替換模板字符串
    ' ***************************************
    Private Function ItemReSec(ByVal i, ByVal Text, ByVal Arrays)
        Dim Matches, SubMatches
        Set Matches = GetMatch(Text, "\$(\d+?)")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                Text = Replace(Text, SubMatches.value, doQuote(Arrays(SubMatches.SubMatches(0), i)), 1, -1, 1) '執行替換
            Next
            ItemReSec = Text
        Else
            ItemReSec = ""
        End If
        Set Matches = Nothing
    End Function

    ' ***************************************
    '    全局變量函數
    ' ***************************************
    Private Sub ExecuteFunction
        Dim Matches, SubMatches, Text, ExeText
        Set Matches = GetMatch(c_Content, "\function\:([0-9a-zA-Z_\.]*?)\((.*?)\""(.+?)\""(.*?)\)\/\&;")
        If Matches.Count > 0 Then
            For Each SubMatches In Matches
                Text = SubMatches.SubMatches(0) "(" SubMatches.SubMatches(1) """" SubMatches.SubMatches(2) """" SubMatches.SubMatches(3) ")"
                Execute "ExeText=" Text
                c_Content = Replace(c_Content, SubMatches.value, ExeText, 1, -1, 1)
            Next
        End If
        Set Matches = Nothing
    End Sub

    ' ***************************************
    '    普通替換全局標簽
    ' ***************************************
    Public Property Let Sets(ByVal t, ByVal s)
        Dim SetMatch, Bstr, SetSubMatch
        Set SetMatch = GetMatch(c_Content, "(\Set\:([0-9a-zA-Z_\.]*?)\(((.*?)" t "(.*?))?\)\/\&;)")
        If SetMatch.Count > 0 Then
            For Each SetSubMatch In SetMatch
                Execute "Bstr = " SetSubMatch.SubMatches(1) "(" SetSubMatch.SubMatches(3) """" s """" SetSubMatch.SubMatches(4) ")"
                c_Content = Replace(c_Content, SetSubMatch.Value, Bstr, 1, -1, 1)
            Next
        End If
        Set SetMatch = Nothing
        Set SetMatch = GetMatch(c_Content, "(\Set\:" t "\/\&;)")
        If SetMatch.Count > 0 Then
            For Each SetSubMatch In SetMatch
                c_Content = Replace(c_Content, SetSubMatch.Value, s, 1, -1, 1)
            Next
        End If
        Set SetMatch = Nothing
    End Property

End Class

標簽:荊門 普洱 運城 通遼 雅安 鷹潭 通化 巴彥淖爾

巨人網絡通訊聲明:本文標題《ASP 高級模板引擎實現類》,本文關鍵詞  ASP,高級,模板,引擎,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP 高級模板引擎實現類》相關的同類信息!
  • 本頁收集關于ASP 高級模板引擎實現類的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美日韩大陆在线| 亚洲老妇xxxxxx| www.视频一区| 亚洲影院免费观看| 亚洲精品欧美激情| 久久精品人人做| 夜色激情一区二区| 成人手机电影网| 日韩免费性生活视频播放| 亚洲欧美日韩系列| 粉嫩一区二区三区在线看| 欧美mv日韩mv| 日韩成人精品在线| 欧美色倩网站大全免费| 尤物在线观看一区| 色综合久久六月婷婷中文字幕| 26uuuu精品一区二区| 毛片av中文字幕一区二区| 欧美影院精品一区| 一区二区三区 在线观看视频| 国产精品99久久久久久久女警| 欧美一区二区三区免费在线看| 亚洲成av人**亚洲成av**| 欧美吞精做爰啪啪高潮| 亚洲欧美日本在线| 色婷婷av久久久久久久| 国产精品白丝在线| www.亚洲激情.com| 亚洲色图一区二区三区| 91在线国内视频| 1区2区3区国产精品| 成人黄色大片在线观看| 亚洲欧洲精品成人久久奇米网| 国产成人免费在线观看不卡| 久久久www免费人成精品| 国产一区激情在线| 欧美高清在线一区二区| 99久久婷婷国产| 亚洲毛片av在线| 欧美日韩国产高清一区| 丝袜诱惑制服诱惑色一区在线观看| 91成人免费电影| 亚洲成人777| 日韩西西人体444www| 国产一区欧美日韩| 中文字幕亚洲电影| 欧美性感一区二区三区| 日本不卡免费在线视频| 久久久久综合网| 99久久国产综合精品女不卡| 亚洲午夜免费视频| 欧美一区二区三区在线观看| 国产精品亚洲一区二区三区妖精 | 亚洲一区二区三区美女| 欧美日韩精品三区| 国产综合成人久久大片91| 亚洲国产高清aⅴ视频| 欧美在线观看18| 久久99在线观看| 中文字幕中文在线不卡住| 欧美午夜精品久久久久久孕妇| 日韩电影在线一区二区三区| 国产亚洲人成网站| 在线观看日韩毛片| 国产一级精品在线| 亚洲国产精品久久久久秋霞影院| 久久综合九色综合久久久精品综合| 9人人澡人人爽人人精品| 天天色综合天天| 国产精品免费视频观看| 91精品国产丝袜白色高跟鞋| 99在线精品视频| 免费观看久久久4p| 亚洲婷婷综合久久一本伊一区| 91精品一区二区三区久久久久久| 成人一区二区三区视频在线观看| 亚洲一卡二卡三卡四卡五卡| 国产女主播视频一区二区| 欧美日韩国产一级二级| 成人激情av网| 精品一区二区影视| 午夜影院在线观看欧美| 亚洲欧美日韩国产综合在线| 精品国产乱码久久久久久蜜臀| 在线观看三级视频欧美| 成人app在线| 国产在线精品一区二区夜色| 丝袜亚洲精品中文字幕一区| 中文字幕字幕中文在线中不卡视频| 精品区一区二区| 欧美日韩精品高清| 色菇凉天天综合网| 成人激情开心网| 国产精品资源在线观看| 日本不卡免费在线视频| 亚洲成人黄色小说| 亚洲午夜激情网站| 一区二区在线看| 18成人在线视频| 国产精品久久久一本精品| 久久男人中文字幕资源站| 日韩欧美www| 欧美mv日韩mv国产网站app| 欧美日韩国产影片| 欧美日韩大陆在线| 欧美日韩成人综合天天影院 | 国产成人亚洲综合a∨婷婷| 久久99精品久久久久久国产越南| 婷婷综合久久一区二区三区| 亚洲国产精品久久一线不卡| 亚洲精品国久久99热| 亚洲视频在线一区| 亚洲女与黑人做爰| 一区二区不卡在线播放| 一区二区三区产品免费精品久久75| 一区视频在线播放| 亚洲丝袜美腿综合| 一区二区三区中文在线观看| 亚洲欧美日韩综合aⅴ视频| 亚洲精品日韩一| 午夜视频一区二区三区| 日韩高清在线不卡| 久久草av在线| 国产毛片精品一区| 成人精品视频一区二区三区尤物| 成人午夜视频在线| 91视频免费观看| 欧美视频一区二区三区在线观看| 欧美精品丝袜中出| www国产成人| 日韩美女精品在线| 亚洲电影一区二区| 国产真实乱子伦精品视频| 成人免费毛片aaaaa**| 99re8在线精品视频免费播放| 亚洲人成7777| 水蜜桃久久夜色精品一区的特点| 精油按摩中文字幕久久| 精品一区二区三区在线播放| 国产一区二区三区在线观看精品| 大美女一区二区三区| 不卡视频免费播放| 日本美女一区二区| 亚洲高清视频中文字幕| 精品在线播放免费| 国产成人自拍网| 欧美色电影在线| 精品国产免费久久| 亚洲美女屁股眼交| 激情文学综合丁香| 色悠悠久久综合| 日韩视频中午一区| 亚洲欧洲韩国日本视频 | 欧美一区二区播放| 久久久777精品电影网影网| 夜夜爽夜夜爽精品视频| 国产一区二区三区av电影| 欧美性猛片xxxx免费看久爱| 久久久精品人体av艺术| 天天操天天色综合| 99久久国产综合色|国产精品| 日韩欧美的一区二区| 亚洲女人的天堂| 国产精品自拍在线| 91精品国产欧美一区二区成人| 亚洲三级久久久| 国产成人啪午夜精品网站男同| 欧美老年两性高潮| 亚洲欧美另类小说视频| 国产一区二区三区蝌蚪| 7777精品伊人久久久大香线蕉完整版 | 日韩一区二区三区四区五区六区| 国产午夜精品在线观看| 日本少妇一区二区| 欧美亚洲免费在线一区| 国产精品久久久久久久久免费樱桃| 美国欧美日韩国产在线播放| 欧美综合在线视频| 亚洲欧美另类图片小说| 国产高清视频一区| 久久午夜电影网| 免费观看日韩av| 欧美一区二区三区视频| 亚洲国产欧美在线| 欧美在线视频全部完| 亚洲美女视频一区| 色综合久久综合| **性色生活片久久毛片| 丁香桃色午夜亚洲一区二区三区| 精品99一区二区三区| 国产中文字幕精品| www国产精品av| 国产精品456露脸| 久久综合久久久久88| 国产精品羞羞答答xxdd| 国产网红主播福利一区二区| 国产综合色在线视频区| 国产亚洲精品资源在线26u| 岛国一区二区在线观看| 国产精品久久久久aaaa|