欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp常用函数集合,非常不错以后研究第1/4页

程序员文章站 2022-05-28 16:45:56
<% function loadtempletfile(byval path)     on e...
<%
function loadtempletfile(byval path)
    on error resume next
    dim objstream
    set objstream = server.createobject("adodb.stream")
    with objstream
        .type = 2
        .mode = 3
        .open
        .loadfromfile server.mappath(path)
        if err.number <> 0 then
            err.clear
             response.write("预加载的模板[" & path & "]不存在!")
            response.end()
        end if
        .charset = "" & chrset & ""
        .position = 2
            loadtempletfile = .readtext
        .close
    end with
    set objstream = nothing
end function

function movefiles(sfolder,dfolder)
    on error resume next
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    if fso.folderexists(server.mappath(sfolder)) and fso.folderexists(server.mappath(dfolder)) then
        fso.copyfolder server.mappath(sfolder),server.mappath(dfolder)
        movefiles = true
    else
        movefiles = false
        set fso = nothing
        call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
    end if
    set fso = nothing
end function

function renamefolder(sfolder,dfolder)
    on error resume next
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    if fso.folderexists(server.mappath(sfolder)) then
        fso.movefolder server.mappath(sfolder),server.mappath(dfolder)
        renamefolder = true
    else
        renamefolder = false
        set fso = nothing
        call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
    end if
    set fso = nothing
end function

function checkfolder(spath)
    on error resume next
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    if fso.folderexists(server.mappath(spath)) then
        checkfolder = true
    else
        checkfolder = false
    end if
    set fso = nothing
end function

function checkfile(spath)
    on error resume next
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    if fso.fileexists(server.mappath(spath)) then
        checkfile = true
    else
        checkfile = false
    end if
    set fso = nothing
end function

function createdir(spath)
    dim fso,patharr,i,path_level,pathtmp,cpath
    on error resume next
    spath = replace(spath,"\","/")
    set fso = server.createobject("scripting.filesystemobject")
        patharr = split(spath,"/")
        path_level = ubound(patharr)
        for i = 0 to path_level
            if i = 0 then pathtmp = patharr(0) & "/" else pathtmp = pathtmp&patharr(i) & "/"
            cpath = left(pathtmp,len(pathtmp)-1)
            if not fso.folderexists(cpath) then fso.createfolder(cpath)
        next
    set fso = nothing
    if err.number <> 0 then
        err.clear
        createdir = false
    else
        createdir = true
    end if
end function

function delclassfolder(spath)
    on error resume next
    dim fso
    set fso = server.createobject("scripting.filesystemobject")
    if fso.folderexists(server.mappath(spath)) then
        fso.deletefolder(server.mappath(spath))
    end if
    set fso = nothing
end function

function delnewsfile(spath,filename)
    on error resume next
    dim fso,temparr,cpath,epath,i:i = 0
    set fso = server.createobject("scripting.filesystemobject")
    spath = spath & filename & site_extname
    if fso.fileexists(server.mappath(spath)) then
        fso.deletefile(server.mappath(spath))
        while(i <> -1)
            i = i + 1
            epath = replace(spath,filename & ".",filename & "_" & i + 1 & ".")
            if fso.fileexists(server.mappath(epath)) then
                fso.deletefile(server.mappath(epath))
            else
                i = -1
            end if
        wend
    end if
end function

class stringclass
    public function getstr(strhtml)
        dim patrnstr
            patrnstr="<.*?>"
        dim objregex
        set objregex = new regexp
            objregex.pattern = patrnstr
            objregex.ignorecase = true
            objregex.global = true
        getstr = objregex.replace(strhtml,"")
        set objregex = nothing
    end function
    public function replacestr(patrn,mstr,replstr)
        dim objregex
        set objregex = new regexp
            objregex.pattern = patrn
            objregex.ignorecase = true
            objregex.global = true
        replacestr = objregex.replace(mstr,replstr)
        set objregex = nothing
    end function
    public function classcustomtag(byval patrn,byval mstr,byval classid,byval indexid,byval pagestr)
        dim objregex,match,matches
        set objregex = new regexp
            objregex.pattern = patrn
            objregex.ignorecase = true
            objregex.global = true
        set matches = objregex.execute(mstr)
        for each match in matches
            mstr = replace(mstr,match.value,parseclasstag(match.value,classid,indexid,pagestr))
        next
        set matches = nothing
        set objregex = nothing
        classcustomtag = mstr
    end function
    public function newscustomtag(byval patrn,byval mstr,byval classid,byval newsid,byval keywords)
        dim objregex,match,matches
        set objregex = new regexp
            objregex.pattern = patrn
            objregex.ignorecase = true
            objregex.global = true
        set matches = objregex.execute(mstr)
        for each match in matches
            mstr = replace(mstr,match.value,parsenewstag(match.value,classid,newsid,keywords))
        next
        set matches = nothing
        set objregex = nothing
        newscustomtag = mstr
    end function
end class

function processcustomtag(byval scontent)
    dim objregex,match,matches
    set objregex = new regexp
        objregex.pattern = "{ncms:[^<>]+?\/}"
        objregex.ignorecase = true
        objregex.global = true
    set matches = objregex.execute(scontent)
    for each match in matches
        scontent = replace(scontent,match.value,parsetag(match.value))
    next
    set matches = nothing
    set objregex = nothing
    processcustomtag = scontent
end function

function x_processcustomtag(byval scontent)
    dim objregex,match,matches
    set objregex = new regexp
        objregex.pattern = "(\[ncms:).+?(\])(.|\n)+?(\[\/ncms\])"
        objregex.ignorecase = true
        objregex.global = true
    set matches = objregex.execute(scontent)
    for each match in matches
        scontent = replace(scontent,match.value,parsetag(match.value))
    next
    set matches = nothing
    set objregex = nothing
    x_processcustomtag = scontent
end function

function getattribute(byval strattribute,byval strtag)
    dim objregex,matches
    set objregex = new regexp
        objregex.pattern = lcase(strattribute)&"=""[0-9a-za-z]*"""
        objregex.ignorecase = true
        objregex.global = true
    set matches = objregex.execute(strtag)
    if matches.count > 0 then
        getattribute = split(matches(0).value,"""")(1)
    else
        getattribute = ""
    end if
    set matches = nothing
    set objregex = nothing
end function

function getinnerhtml(byval strhtml)
    dim objregex,matches,str
    set objregex = new regexp
    objregex.pattern = "(\])(.|\n)+?(\[\/ncms\])"
    objregex.ignorecase = true
    objregex.global = false
    set matches = objregex.execute(strhtml)
        if matches.count > 0 then
            str = trim(matches.item(0).value)
        end if
    set matches = nothing
    if len(str) > 8 then
        getinnerhtml = mid(str,2,len(str) - 8)
    end if
end function

function parsetag(byval strtag)
    dim arrresult,classname,arrattributes,objclass
    if len(strtag) = 0 then exit function
    arrresult = split(strtag,":")
    classname = split(arrresult(1)," ")(0)
    select case lcase(classname)
        case "news"
            set objclass = new ncmsnewstag
                if not isnumeric(getattribute("id",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[id]必须是数字!")
                    response.end()
                end if
                objclass.id = getattribute("id",strtag)
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[num]必须是数字!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                objclass.show = getattribute("show",strtag)
                if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[lih]必须是数字!")
                    response.end()
                end if
                objclass.lih = getattribute("lih",strtag)
                if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[imgw]必须是数字!")
                    response.end()
                end if
                objclass.imgw = getattribute("imgw",strtag)
                if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[imgh]必须是数字!")
                    response.end()
                end if
                objclass.imgh = getattribute("imgh",strtag)
                if getattribute("tgt",strtag) <> "" and getattribute("tgt",strtag) <> "blank" then
                    response.write("标签[ncms:news]参数错误!参数[tgt]必须是[<font color=""red"">blank</font>]!")
                    response.end()
                end if
                objclass.tgt = getattribute("tgt",strtag)
                if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
                    response.end()
                end if
                objclass.hit = getattribute("hit",strtag)
                if not isnumeric(getattribute("col",strtag)) then
                    response.write("标签[ncms:news]参数错误!参数[col]必须是数字!")
                    response.end()
                end if
                parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag))
            set objclass = nothing
        case "free"
            set objclass = new x_ncmsnewstag
                if not isnumeric(getattribute("id",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[id]必须是数字!")
                    response.end()
                end if
                objclass.id = getattribute("id",strtag)
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[num]必须是数字!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[news:free]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                objclass.show = getattribute("show",strtag)
                if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[lih]必须是数字!")
                    response.end()
                end if
                objclass.lih = getattribute("lih",strtag)
                if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
                    response.end()
                end if
                objclass.hit = getattribute("hit",strtag)
                if not isnumeric(getattribute("col",strtag)) then
                    response.write("标签[ncms:free]参数错误!参数[col]必须是数字!")
                    response.end()
                end if
                parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag),getinnerhtml(strtag))
        case "menu"
            set objclass = new ncmsmenutag
                parsetag = objclass.menushow(getattribute("show",strtag))
            set objclass = nothing
        case "info"
            set objclass = new ncmsinfotag
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[ncms:info]参数错误!参数[num]必须是数字!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[ncms:info]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                parsetag = objclass.infoshow()
            set objclass = nothing
        case "head"
            set objclass = new ncmsheadtag
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[ncms:head]参数错误!参数[num]必须是数字!")
                    response.end()
                elseif getattribute("num",strtag) > 6 then
                    response.write("标签[ncms:head]参数错误!参数[num]在[1-6]之间!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[ncms:head]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
                    response.write("标签[ncms:head]参数错误!参数[imgw]必须是数字!")
                    response.end()
                end if
                objclass.imgw = getattribute("imgw",strtag)
                if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
                    response.write("标签[ncms:head]参数错误!参数[imgh]必须是数字!")
                    response.end()
                end if
                objclass.imgh = getattribute("imgh",strtag)
                if getattribute("size",strtag) <> "" and not isnumeric(getattribute("size",strtag)) then
                    response.write("标签[ncms:head]参数错误!参数[size]必须是数字!")
                    response.end()
                end if
                objclass.size = getattribute("size",strtag)
                parsetag = objclass.headshow(getattribute("ty",strtag))
            set objclass = nothing
        case "link"
            set objclass = new ncmslinktag
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[ncms:link]参数错误!参数[num]必须是数字!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("col",strtag)) then
                    response.write("标签[ncms:link]参数错误!参数[col]必须是数字!")
                    response.end()
                end if
                parsetag = objclass.linkshow(getattribute("ty",strtag),getattribute("col",strtag))
            set objclass = nothing
        case else
            response.write("标签[ncms:xxx]构造错误!")
            response.end()
    end select
end function

function parseclasstag(byval strtag,byval classid,byval indexid,byval pagestr)
    dim arrresult,classname,arrattributes,objclass
    if len(strtag) = 0 then exit function
    arrresult = split(strtag,":")
    classname = split(arrresult(1)," ")(0)
    select case lcase(classname)
        case "list"
            set objclass = new ncmsclasstag
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[news:list]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                objclass.order = getattribute("order",strtag)
                if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
                    response.write("标签[news:list]参数错误!参数[lih]必须是数字!")
                    response.end()
                end if
                objclass.lih = getattribute("lih",strtag)
                if not isnumeric(getattribute("col",strtag)) then
                    response.write("标签[news:list]参数错误!参数[col]必须是数字!")
                    response.end()
                end if
                parseclasstag = objclass.classshow(getattribute("ty",strtag),getattribute("col",strtag),classid,indexid,pagestr)
            set objclass = nothing
        case else
            response.write("标签[news:xxxx]构造错误!")
            response.end()
    end select
end function

function parsenewstag(byval strtag,byval classid,byval newsid,byval keywords)
    dim arrresult,classname,arrattributes,objclass
    if len(strtag) = 0 then exit function
    arrresult = split(strtag,":")
    classname = split(arrresult(1)," ")(0)
    select case lcase(classname)
        case "relate"
            set objclass = new ncmsrelatetag
                if not isnumeric(getattribute("num",strtag)) then
                    response.write("标签[news:relate]参数错误!参数[num]必须是数字!")
                    response.end()
                end if
                objclass.num = getattribute("num",strtag)
                if not isnumeric(getattribute("len",strtag)) then
                    response.write("标签[news:relate]参数错误!参数[len]必须是数字!")
                    response.end()
                end if
                objclass.len = getattribute("len",strtag)
                if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
                    response.write("标签[news:relate]参数错误!参数[lih]必须是数字!")
                    response.end()
                end if
                objclass.lih = getattribute("lih",strtag)
                if not isnumeric(getattribute("col",strtag)) then
                    response.write("标签[news:relate]参数错误!参数[col]必须是数字!")
                    response.end()
                end if
                parsenewstag = objclass.relateshow(getattribute("col",strtag),classid,newsid,keywords)
            set objclass = nothing
        case "page"
            set objclass = new ncmspagetag
                parsenewstag = objclass.pageshow(getattribute("show",strtag),classid,newsid)
            set objclass = nothing
        case else
            response.write("标签[news:xxxx]构造错误!")
            response.end()
    end select
end function

function getcurclasscount(classid)
    dim rs,curclasscount
    set rs = conn.execute("select count(*) from ncms_news where classid in(" & classid & allchildclass(classid) & ")")
    if instr(rs(0)/n_listnum,".") <> 0 then
        curclasscount = fix(rs(0)/n_listnum) + 1
    else
        curclasscount = rs(0)/n_listnum
    end if
    rs.close:set rs = nothing
    getcurclasscount = curclasscount
end function

class ncmsclasstag
    public ty,len,order,lih
    public function classshow(stype,scolumn,classid,indexid,pagestr)
        dim temphtm,xsql,rs,sql,databox,l,obox
            temphtm = "" & chr(10) & "<table cellpadding=""0"" cellspacing=""0"" width=""100%"" border=""0"">" & chr(10)
            temphtm = temphtm & "<tr>" & chr(10)
        if indexid = "" or indexid = 0 then
            indexid = 1
        end if
        select case stype
            case "text"
                set rs = server.createobject("adodb.recordset")
                if order = "desc" then
                    sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id desc"
                elseif order = "asc" then
                    sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id asc"
                else
                    response.write("标签[news:list]参数[order]错误!")
                    response.end()
                end if
                rs.cursorlocation = 3
                rs.open sql,conn,1,3
                if rs.eof then
                    rs.close:set rs = nothing
                    temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
                    classshow = temphtm
                    exit function
                end if
                rs.pagesize = n_listnum
                rs.absolutepage = indexid
                for l = 1 to rs.pagesize
                    if rs.eof then exit for
                    temphtm = temphtm & "<td height=""" & lih & """ align=""left"" valign=""middle"">·<a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """ title=""" & rs("title") & """>" & gottopic(rs("title"),len) & "</a></td>" & chr(10)
                    temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("click") & "</td>" & chr(10)
                    temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("addtime") & "</td>" & chr(10)
                    if l = rs.pagesize then
                        temphtm = temphtm & "</tr>" & chr(10)
                    else
                        if cint(l mod scolumn) = 0 then
                            temphtm = temphtm & "</tr>" & chr(10)
                            temphtm = temphtm & "<tr>" & chr(10)
                        end if
                    end if
                    rs.movenext
                next
                rs.close:set rs = nothing
                temphtm = temphtm & "</table>" & chr(10)
                classshow = temphtm & pagestr
            case "image"
                if isobjinstalled("persits.jpeg") = true and jpeg_gate = 0 then
                    set rs = server.createobject("adodb.recordset")
                    if order = "desc" then
                        sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
                    elseif order = "asc" then
                        sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
                    else
                        response.write("标签[news:list]参数[order]错误!")
                        response.end()
                    end if
                    rs.cursorlocation = 3
                    rs.open sql,conn,1,3
                    if rs.eof then
                        rs.close:set rs = nothing
                        temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
                        classshow = temphtm
                        exit function
                    end if
                    rs.pagesize = n_listnum
                    rs.absolutepage = indexid
                    for l = 1 to rs.pagesize
                        if rs.eof then exit for
                        temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
                        if l = rs.pagesize then
                            temphtm = temphtm & "</tr>" & chr(10)
                        else
                            if cint(l mod scolumn) = 0 then
                                temphtm = temphtm & "</tr>" & chr(10)
                                temphtm = temphtm & "<tr>" & chr(10)
                            end if
                        end if
                        if checkfile("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "") = true then
                            set obox = server.createobject("persits.jpeg")
                                obox.open server.mappath("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "")
                                obox.width = jpeg_width
                                obox.height = jpeg_height
                                obox.save server.mappath("" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & "")
                            set obox = nothing
                        end if
                        rs.movenext
                    next
                    rs.close:set rs = nothing
                    temphtm = temphtm & "</table>" & chr(10)
                    classshow = temphtm & pagestr
                else
                    set rs = server.createobject("adodb.recordset")
                    if order = "desc" then
                        sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
                    elseif order = "asc" then
                        sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
                    else
                        response.write("标签[news:list]参数[order]错误!")
                        response.end()
                    end if
                    rs.cursorlocation = 3
                    rs.open sql,conn,1,3
                    if rs.eof then
                        rs.close:set rs = nothing
                        temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
                        classshow = temphtm
                        exit function
                    end if
                    rs.pagesize = n_listnum
                    rs.absolutepage = indexid
                    for l = 1 to rs.pagesize
                        if rs.eof then exit for
                        temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
                        if l = rs.pagesize then
                            temphtm = temphtm & "</tr>" & chr(10)
                        else
                            if cint(l mod scolumn) = 0 then
                                temphtm = temphtm & "</tr>" & chr(10)
                                temphtm = temphtm & "<tr>" & chr(10)
                            end if
                        end if
                        rs.movenext
                    next
                    rs.close:set rs = nothing
                    temphtm = temphtm & "</table>" & chr(10)
                    classshow = temphtm & pagestr
                end if
            case else
                response.write("标签[news:list]参数[ty]错误!")
                response.end()
        end select
    end function
end class
1