ASP的一些自定义函数整理第2/2页

 更新时间:2008年06月18日 21:35:52   作者:  
书学asp,经常会用到一些函数,对于代码的重用性有所提高,执行速度也提高,希望大家多多欣赏学习

'函数ID:13 
'函数作用:个性化加密 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-25 15:12 
'修改时间: 
'传人参数: 
'    StrPassword:需加密的数据 
'返回值: 
'    加密后的数据 
'============================================================================================================================ 
Function  MyEncrypt(StrPassword) 
    Dim StrLen,StrLeft,StrRight,n 
    n = 8 
    StrPassword = MD5(StrPassword) 
    StrLen = len(StrPassword) 
    StrLeft = left(StrPassword,n) 
    StrRight = right(StrPassword,StrLen-n) 
    MyEncrypt = StrRight&StrLeft 
End function 
'============================================================================================================================ 
'函数ID:14 
'函数作用:禁止浏览器缓存本页 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 2:45 
'修改时间: 
'传人参数: 
'返回值: 
'============================================================================================================================ 
Sub NoBuffer() 
    Response.expires = 0 
    Response.expiresabsolute = Now() - 1 
    Response.addHeader "pragma","no-cache" 
    Response.addHeader "cache-control","private" 
    Response.CacheControl = "no-cache" 
end sub 
'============================================================================================================================ 
'函数ID:15 
'函数作用:网页格式化输入文本 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 2:50 
'修改时间: 
'传人参数: 
'     fString:源字符串 
'返回值:格式化后的字符串 
'============================================================================================================================ 
function HTMLEncode(fString) 
    if not isnull(fString) then 
        fString = replace(fString, ">", ">") 
        fString = replace(fString, "<", "<") 
        fString = Replace(fString, CHR(32)&CHR(32), "  ") 
        fString = Replace(fString, CHR(9), " ") 
        fString = Replace(fString, CHR(34), """) 
        fString = Replace(fString, CHR(39), "'") 
        fString = Replace(fString, CHR(13), "") 
        fString = Replace(fString, CHR(10) & CHR(10), "</P><P>") 
        fString = Replace(fString, CHR(10), "<BR>") 
        HTMLEncode = fString 
    end if 
end function 
'============================================================================================================================ 
'函数ID:16 
'函数作用:从头部截取字符串的指定长度(按字符数算) 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 3:04 
'修改时间: 
'传人参数: 
'     Str:源字符串 
'    StrLen:长度 
'返回值:截取得到的字符串 
'============================================================================================================================ 
Function GotTopic(Str,StrLen) 
    Dim l,t,c, i,LableStr,regEx,Match,Matches,focus,last_str 
    if IsNull(Str) then 
        GotTopic = "" 
        Exit Function 
    end if 
    if Str = "" then 
        GotTopic="" 
        Exit Function 
    end if 
    Set regEx = New RegExp 
    regEx.Pattern = "\[[^\[\]]*\]" 
    regEx.IgnoreCase = True 
    regEx.Global = True 
    Set Matches = regEx.Execute(Str) 
    For Each Match in Matches 
        LableStr = LableStr & Match.Value 
    Next 
    Str = regEx.Replace(Str,"") 
    Str=Replace(Replace(Replace(Replace(Str," "," "),""",Chr(34)),">",">"),"<","<") 
    l=len(str) 
    t=0 
    strlen=Clng(strLen) 
    for i=1 to l 
        c=Abs(Asc(Mid(str,i,1))) 
        if c>255 then 
            t=t+2 
        else 
            t=t+1 
        end if 
        if t = strLen-2 then 
            focus = i 
            last_str = ".." 
        end if 
        if t = strLen-1 then 
            focus = i 
            last_str = "." 
        end if 
        if t>=strlen then 
            GotTopic=left(str,focus)&last_str 
            exit for 
        else 
            GotTopic=str 
        end if 
    next 
    GotTopic = Replace(Replace(Replace(Replace(GotTopic," "," "),Chr(34),"""),">",">"),"<","<") & LableStr 
end function 
'============================================================================================================================ 
'函数ID:17 
'函数作用:检测验证码 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 3:09 
'修改时间: 
'传人参数: 
'     RadomPass:输入的验证码 
'返回值: 
'============================================================================================================================ 
Sub CheckRadomPass(RadomPass) 
    if radompass = "" then 
        call ShowErr(language_arr(14)) 
    elseif Session("GetCode") = "9999" then 
        Session("GetCode")="" 
    elseif Session("GetCode") = "" then 
        call ShowErr(language_arr(15)) 
    elseif cstr(Session("GetCode"))<>radompass then 
        call ShowErr(language_arr(16)) 
    end if 
    Session("GetCode")="" 
End sub 
'============================================================================================================================ 
'函数ID:18 
'函数作用:生成验证码 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 3:16 
'修改时间: 
'传人参数: 
'返回值: 
'============================================================================================================================ 
Function GetCode() 
    Dim TestObj 
    On Error Resume Next 
    Set TestObj = Server.CreateObject("Adodb.Stream") 
    Set TestObj = Nothing 
    If Err Then 
        Dim TempNum 
        Randomize timer 
        TempNum = cint(8999*Rnd+1000) 
        Session("GetCode") = TempNum 
        GetCode = Session("GetCode") 
    Else 
        GetCode = "<img src="""&Site_Url&"inc/GetCode.asp"">" 
    End If 
End Function 
'============================================================================================================================ 
'函数ID:19 
'函数作用:获取客户端操作系统版本 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 3:21 
'修改时间: 
'传人参数: 
'返回值:操作系统版本名称 
'============================================================================================================================ 
Function GetSystem() 
    dim System 
    System = Request.ServerVariables("HTTP_USER_AGENT") 
    if Instr(System,"Windows NT 5.2") then 
        System = "Win2003" 
    elseif Instr(System,"Windows NT 5.0") then 
        System="Win2000" 
    elseif Instr(System,"Windows NT 5.1") then 
        System = "WinXP" 
    elseif Instr(System,"Windows NT") then 
        System = "WinNT" 
    elseif Instr(System,"Windows 9") then 
        System = "Win9x" 
    elseif Instr(System,"unix") or instr(System,"linux") or instr(System,"SunOS") or instr(System,"BSD") then 
        System = "Unix" 
    elseif Instr(System,"Mac") then 
        System = "Mac" 
    else 
        System = "Other" 
    end if 
    GetSystem = System 
End Function 
'============================================================================================================================ 
'函数ID:20 
'函数作用:数据库事务处理 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-3-5 3:25 
'修改时间: 
'传人参数: 
'返回值:true or false 
'============================================================================================================================ 
function ConnManage(Conn_object) 
    if Conn_object.Errors.count<>0 then 
        Conn_object.rollbacktrans 
        err.clear 
        ConnManage = false 
    else 
        Conn_object.committrans 
        ConnManage = true 
    end if 
end function 
'============================================================================================================================ 
'函数ID:21 
'函数作用:快速排序(递归) 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-4-9 19:53 
'修改时间: 
'传人参数: 
'    arr:需排序的数组 
'    Low:数组最小下标 
'    High:数组最大下标 
'返回值: 
'============================================================================================================================ 
Sub QuickSort(arr,Low,High) 
    Dim i,j,x,y,k 
    i=Low 
    j=High 
    x=arr(Cint((Low+High)/2)) 
    Do 
        While (arr(i)-x<0 and i<High) 
            i=i+1 
        Wend 
        While (x-arr(j)<0 and j>Low) 
            j=j-1 
        Wend 
        If i<=j Then 
            y=arr(i) 
            arr(i)=arr(j) 
            arr(j)=y 
            i=i+1 
            j=j-1 
        End if 
    Loop while i<=j 
    If Low<j Then call QuickSort(arr,Low,j) 
    If i<High Then call QuickSort(arr,i,High) 
End sub 
'============================================================================================================================ 
'函数ID:22 
'函数作用:将数组的元素以特定字符串连起来 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-4-9 21:16 
'修改时间: 
'传人参数: 
'    arr:需串连的数组 
'    character:串连字符 
'返回值: 
'    串连后的字符串 
'============================================================================================================================ 
function arr_join(arr,character) 
    dim i 
    for i = 0 to ubound(arr) 
        if i = 0 then 
            arr_join = arr(i) 
        else 
            arr_join = arr_join & character & arr(i) 
        end if 
    next 
end function 
'============================================================================================================================ 
'函数ID:23 
'函数作用:返回字符串以某分割符分割的数目 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:29 
'修改时间: 
'传人参数: 
'    errStr:错误提示-字符型 
'返回值:返回提交页面 
'============================================================================================================================ 
function count_character(str,character) 
    dim i 
    i = 0 
    Do Until InStr(str,character) = 0 
      str = Mid(str, InStr(str,character) + 1) 
      i = i + 1 
    Loop 
    count_character = i 
End function 
'============================================================================================================================ 
'函数ID:24 
'函数作用:截取含有分割符的字符串中指定数目的字符串 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:29 
'修改时间: 
'传人参数: 
'    errStr:错误提示-字符型 
'返回值:返回提交页面 
'============================================================================================================================ 
function inter_str_by_character_num(str,character,start,num) 
    dim i,str_temp,start_location,inter_length,str_length 
    i = 0 
    inter_length = 0 
    str_length = len(str) 
    str = right(left(str,str_length-1),str_length-2) 
    str_length = str_length - 2 
    str_temp = str 
    Do Until InStr(str_temp,character) = 0 
        i = i + 1 
        str_temp = Mid(str_temp,InStr(str_temp,character) + 1) 
        if i = start - 1 then start_location = str_length - len(str_temp) 
        if i = start + num - 1 then 
            inter_length = str_length - len(str_temp) - start_location 
            exit do 
        end if 
    Loop 
    if inter_length = 0 then 
        inter_str_by_character_num = mid(str,start_location+1) 
    else 
        inter_str_by_character_num = mid(str,start_location+1,inter_length-1) 
    end if 
End function 
'============================================================================================================================ 
'函数ID:25 
'函数作用:利用Stream下载文件 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:29 
'修改时间: 
'传人参数: 
'    errStr:错误提示-字符型 
'返回值:返回提交页面 
'============================================================================================================================ 
function downloadFile(strFile) 
    dim strFilename,s,fso,f,intFilelength 
    Response.Buffer = True 
    Response.Clear 
    Set s = Server.CreateObject("ADODB.Stream") 
    s.Open 
    s.Type = 1 
    on error resume next 
    Set fso = Server.CreateObject("Scripting.FileSystemObject")     
    if not fso.FileExists(strFile)  then     
        Response.Write("<h1>Error:</h1>该文件不存在<p>")     
        Response.End 
    end if 
    Set f = fso.GetFile(strFile) 
    intFilelength = f.size 

    s.LoadFromFile(strFile) 
    if err then 
        Response.Write("<h1>Error:</h1>文件下载错误<p>") 
        Response.End 
    end  if 
    Response.AddHeader "Content-Disposition","attachment;filename=" & f.name 
    Response.AddHeader "Content-Length",intFilelength 
    Response.CharSet = "UTF-8" 
    Response.ContentType = "application/octet-stream" 
    Response.BinaryWrite s.Read 
    Response.Flush 
    s.Close 
    set f = nothing 
    set fso = nothing 
    Set s = Nothing 
end function 
'============================================================================================================================ 
'函数ID:26 
'函数作用:返回信息 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-21 20:45 
'修改时间: 
'传人参数: 
'返回值: 
'============================================================================================================================ 
sub send_back(ResultWords) 
    dim objResult 
    Set objResult = Server.CreateObject("MSXML2.DOMDocument") 
    objResult.loadXML ("<返回结果></返回结果>") 
    objResult.selectSingleNode("返回结果").text = ResultWords 
    Response.ContentType = "text/xml" 
    objResult.save (Response) 
    Response.End 
    Set objResult = Nothing 
end sub 
'============================================================================================================================ 
'函数ID:27 
'函数作用:获取错误信息 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-4-22 13:13 
'修改时间: 
'传人参数: 
'返回值: 
'============================================================================================================================ 
function get_err() 
    if Err.Number > 0 then 
        get_err = Err.Description 
    else 
        get_err = "T" 
    end if     
end function 
'============================================================================================================================ 
'函数ID:28 
'函数作用:与SafeRequest相反 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 15:32 
'修改时间: 
'传人参数: 
'    paraName:参数名称-字符型 
'    paraType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)  
'返回值: 
'    过滤后的字符串 
'============================================================================================================================ 
function SafeResponse(content) 
    dim paraValue 
    paraValue = content 
    paraValue = replace(paraValue,"[system:34]","'") 
    paraValue = replace(paraValue,"[system:61]","=") 
    SafeResponse = paraValue 
end function 
'============================================================================================================================ 
'函数ID:29 
'函数作用:保存远程图片 
'作者名称:http://news.dvbbs.net/infoview/Article_2906.html 
'建立时间:2006-2-16 15:32 
'修改时间: 
'传人参数: 
'    LocalFileName:本地文件名 
'   RemoteFileUrl:远程文件URL 
'返回值: 
'============================================================================================================================ 
sub SaveRemoteFile(LocalFileName,RemoteFileUrl) 
    dim Ads,Retrieval,GetRemoteData 
    Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") 
    With Retrieval 
      .Open "Get", RemoteFileUrl, False, "", "" 
      .Send 
      GetRemoteData = .ResponseBody 
    End With 
    Set Retrieval = Nothing 
    Set Ads = Server.CreateObject("Adodb.Stream") 
    With Ads 
      .Type = 1 
      .Open 
      .Write GetRemoteData 
      .SaveToFile LocalFileName,2 
      .Cancel() 
      .Close() 
    End With 
    Set Ads=nothing 
end sub 
%> 

相关文章

最新评论