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

推荐下天枫常用ASP函数封装,推荐大家使用

程序员文章站 2022-04-14 20:20:39
复制代码 代码如下:<% '------------------------------------- '天枫asp class v1.0,集常用...
复制代码 代码如下:

<%
'-------------------------------------
'天枫asp class v1.0,集常用asp函数于一体
'天枫版权所有http://www.52515.net
'qq:76994859 email:chenshaobo@gmail.com

'所有功能函数名如下:
' strlength(str) 取得字符串长度
' cutstr(str,strlen) 字符串长度切割
' checkisempty(tstr) 检测是否为空
' isinteger(para) 整数检验
' checkname(str) 名字字符校验
' checkpassword(str) 密码检验
' checkemail(email) 邮箱格式检验
' alert(msg,gourl) 弹出对话框提示
' goback(str1,str2,isback) 出错信息提示
' suc(str1,str2,url) 操作成功信息提示
' chkpost() 检测是否站外提交表单
' psql() 防止sql注入
' filtratehtmlcode(str) 防止生成html
' htmlcode(str) 过滤html
' replacehtml(tstr) 清滤html
' getip() 获取客户端ip
' getbrowser 获取客户端浏览器信
' getsystem 获取客户端操作系统
' geturl() 获取当前页面url包含参数
' curl()   获取当前页面url
' getextend 取得文件扩展名
' checkexist(table,fieldname,fieldcontent,isblur) 检测某个表中某个字段的内容是否存在
' getnum(table,fieldname,resulttype,args) 检测某个表某个字段有多少条,最大值 ,最小值等
' getfoldersize(folderpath) 计算某个文件夹的大小
' getfilesize(filename) 计算某个文件的大小
' isobjinstalled(strclassstring) 检测组件是否安装
' sendmail jmail发送邮件
' responsecookies 写入cookies
' cleancookies 清除cookies
' gettimeover 取得程序页面执行时间
' formatsize 大小格式化
' formattime 时间格式化
' zodiac 取得生肖
' constellation   取得星座
'-------------------------------------

class cls_fun

'--------字符处理--------------------------

    '****************************************************
    '函数名:strlength
    '作  用:取得字符串长度(汉字为2)
    '参  数:str ----字符串内容
    '返回值:字符串长度
    '****************************************************
    public function strlength(str)
            dim rep,lens,i
            set rep=new regexp
            rep.global=true
            rep.ignorecase=true
            rep.pattern="[\u4e00-\u9fa5\uf900-\ufa2d]"
            for each i in rep.execute(str)
                lens=lens+1
            next
            set rep=nothing
            lens=lens + len(str)
            strlength=lens
        end function

    '****************************************************
    '函数名:cutstr
    '作  用:字符串长度切割,超过显示省略号
    '参  数:str    ----字符串内容
    '       strlen ------要显示的长度
    '返回值:切割后字符串内容
    '****************************************************
    public function cutstr(str,strlen)
           dim l,t,i,c
           if str="" then
              cutstr=""
              exit function
           end if
           str=replace(replace(replace(replace(replace(str," "," "),""",chr(34)),">",">"),"<","<"),"|","|")
           l=len(str)
           t=0
           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 then
                cutstr=left(str,i) & "..."
                exit for
              else
                cutstr=str
              end if
           next
           cutstr=replace(replace(replace(replace(replace(cutstr," "," "),chr(34),"""),">",">"),"<","<"),"|","|")
        end function

'--------------系列验证----------------------------

    '****************************************************
    '函数名:checkisempty
    '作  用:检查是否为空
    '参  数:tstr ----字符串
    '返回值:true不为空,false为空
    '****************************************************
    public function checkisempty(tstr)
        checkisempty=false
        if isnull(tstr) or tstr="" then exit function 
        dim str,re
        str=tstr
        set re=new regexp
        re.ignorecase =true
        re.global=true
        str= replace(str, vbnewline, "")
        str = replace(str, chr(9), "")
        str = replace(str, " ", "")
        str = replace(str, " ", "")
        re.pattern="<img(.[^>]*)>"
        str =re.replace(str,"94kk")
        re.pattern="<(.[^>]*)>"
        str=re.replace(str,"")
        set re=nothing
        if str<>"" then checkisempty=true
    end function

    '****************************************************
    '函数名:isinteger
    '作  用:整数检验
    '参  数:tstr ----字符
    '返回值:true是整数,false不是整数
    '****************************************************
    public function isinteger(para)
           on error resume next
           dim str
           dim l,i
           if isnull(para) then 
              isinteger=false
              exit function
           end if
           str=cstr(para)
           if trim(str)="" then
              isinteger=false
              exit function
           end if
           l=len(str)
           for i=1 to l
               if mid(str,i,1)>"9" or mid(str,i,1)<"0" then
                  isinteger=false 
                  exit function
               end if
           next
           isinteger=true
           if err.number<>0 then err.clear
    end function

    '****************************************************
    '函数名:checkname
    '作  用:名字字符检验    
    '参  数:str ----字符串
    '返回值:true无误,false有误
    '****************************************************
    public function checkname(str)
        checkname=true
        dim rep,pass
        set rep=new regexp
        rep.global=true
        rep.ignorecase=true
        '匹配字母、数字、下划线、汉字且必须以字母或下划线或汉字开始
        rep.pattern="^[a-za-z_u4e00-\u9fa5][\w\u4e00-\u9fa5]+$"
        set pass=rep.execute(str)
        if pass.count=0 then checkname=false
        set rep=nothing
    end function

    '****************************************************
    '函数名:checkpassword
    '作  用:密码检验
    '参  数:str ----字符串
    '返回值:true无误,false有误
    '****************************************************
    public function checkpassword(str)
        dim pass
        checkpassword=true
        if str <> "" then
            dim rep
            set rep = new regexp
            rep.global = true
            rep.ignorecase = true
            '匹配字母、数字、下划线、点号
            rep.pattern="[a-za-z0-9_\.]+$"
            pass=rep.test(str)
            set rep=nothing
            if not pass then checkpassword=false
            end if
    end function    

    '****************************************************
    '函数名:checkemail
    '作  用:邮箱格式检测
    '参  数:str ----email地址
    '返回值:true无误,false有误
    '****************************************************
    public function checkemail(email)
        checkemail=true
        dim rep
        set rep = new regexp
        rep.pattern="([\.a-za-z0-9_-]){2,10}@([a-za-z0-9_-]){2,10}(\.([a-za-z0-9]){2,}){1,4}$"
        pass=rep.test(email)
        set rep=nothing
        if not pass then checkemail=false
    end function

'--------------信息提示----------------------------        
    '****************************************************
    '函数名:alert
    '作  用:弹出对话框提示
    '参  数:msg   ----对话框信息
    '       gourl ----提示后转向哪里
    '返回值:无
    '****************************************************
    public function alert(msg,gourl)
        msg = replace(msg,"'","\'")
          if gourl="" then
              gourl="history.go(-1);"
        else
            gourl="window.location.href='"&gourl&"'"
        end if
        response.write ("<script language=""javascript"" type=""text/javascript"">"&vbnewline&"alert('" & msg & "');"&gourl&vbnewline&"</script>")
        response.end
    end function

    '****************************************************
    '函数名:goback
    '作  用:错误信息提示
    '参  数:str1   ----信息提示标题
    '       str2   ----信息提示内容
    '       isback ----是否显示返回
    '返回值:无
    '****************************************************
    public function goback(str1,str2,isback)
        if str1="" then str1="错误信息"
        if str2="" then str2="请填写完整必填项目"
        if isback="" then 
            str2=str2&" <a href=""javascript:history.go(-1)"">返回重填</a></li>"
        else
            str2=str2
        end if
        response.write"<div style=""margin-left:5px;border:1px solid #0066cc;width:98%""><div style=""height:22px;font-weight:bold;color : white;font-size:14px;background:#799ae1;background:url(images/th.gif);;text-align:left;line-height:20px;padding:3px;"">"&str1&" </div><div style=""line-height:50px;background:#f7f7f7;vertical-align:middle;font-size:14px;width:100%""><div  style=""color:red;font:50px/50px 宋体;float:left;width:5%"">×</div><div  style=""margin-top:8px;float:right;width:90%;text-align:left;padding-left:3px;"">"&str2&"</div></div></div>"
        response.end
    end function

    '****************************************************
    '函数名:suc
    '作  用:成功提示信息
    '参  数:str1   ----信息提示标题
    '       str2   ----信息提示内容
    '       url    ----返回地址
    '返回值:无
    '****************************************************
    public function suc(str1,str2,url)
        if str1="" then str1="操作成功"
        if str2="" then str2="成功的完成这次操作!"
        if url="" then url="javascript:history.go(-1)"
        str2=str2&"  <a href="""&url&""" >返回继续管理</a>"
        response.write"<div style=""margin-left:5px;border:1px solid #0066cc;width:98%""><div style=""height:22px;font-weight:bold;color : white;font-size:14px;background:#799ae1;background:url(images/th.gif);;text-align:left;line-height:20px;padding:3px;"">"&str1&" </div><div style=""line-height:50px;background:#f7f7f7;vertical-align:middle;font-size:14px;width:100%""><div  style=""color:red;font:50px/50px 宋体;float:left;width:5%"">√</div><div  style=""margin-top:8px;float:right;width:90%;text-align:left;padding-left:3px;"">"&str2&"</div></div></div>"
    end function

'--------------安全处理----------------------------    

    '****************************************************
    '函数名:chkpost
    '作  用:禁止站外提交表单
    '返回值:true站内提交,flase站外提交
    '****************************************************
    public function chkpost()
        dim url1,url2
        chkpost=true
        url1=cstr(request.servervariables("http_referer"))
        url2=cstr(request.servervariables("server_name"))
        if mid(url1,8,len(url2))<>url2 then
             chkpost=false
             exit function
        end if
    end function

    '****************************************************
    '函数名:psql
    '作  用:防止sql注入
    '返回值:为空则无注入,不为空则注入并返回注入的字符
    '****************************************************
    public function psql()
        psql=""
        badwords= "'防''防;防and防exec防insert防select防update防delete防count防*防%防chr防mid防master防truncate防char防declare防|"
        badword=split(badwords,"防")
        if request.form<>"" then
            for each tf_post in request.form
                for i=0 to ubound(badword)
                    if instr(lcase(request.form(tf_post)),badword(i))>0 then
                        psql=badword(i)
                        exit function
                    end if
                next
            next
        end if
        if request.querystring<>"" then
            for each tf_get in request.querystring
                for i=0 to ubound(badword)
                    if instr(lcase(request.querystring(tf_get)),badword(i))>0 then
                        psql=badword(i)
                        exit function
                    end if
                next
            next
        end if
    end function

    '****************************************************
    '函数名:filtratehtmlcode
    '作  用:防止生成html代码    
    '参  数:str ----字符串
    '****************************************************
    public function filtratehtmlcode(str)
        if not isnull(str) and str<>"" then
            str=replace(str,chr(9),"")
            str=replace(str,"|","|")
            str=replace(str,chr(39),"'")
            str=replace(str,"<","<")
            str=replace(str,">",">")
            str = replace(str, chr(13),"")
            str = replace(str, chr(10),"")
            filtratehtmlcode=str
        end if
    end function

    '****************************************************
    '函数名:htmlcode
    '作  用:过滤html标签
    '参  数:str ----字符串
    '****************************************************
    public function htmlcode(str)
        if not isnull(str) and str<>"" then
            str = replace(str, ">", ">")
            str = replace(str, "<", "<")
            str = replace(str, chr(32), " ")
            str = replace(str, chr(9), " ")
            str = replace(str, chr(34), """)
            str = replace(str, chr(39), "'")
            str = replace(str, chr(13), "")
            str = replace(str, chr(10), "")
            str = replace(str, "script", "script")
            htmlcode = str
        end if
    end function

    '****************************************************
    '函数名:replacehtml
    '作  用:清理html
    '参  数:tstr ----字符串
    '****************************************************
    public function replacehtml(tstr)
        dim str,re
        str=tstr
        set re=new regexp
            re.ignorecase =true
            re.global=true
            re.pattern="<(p|\/p|br)>"
            str=re.replace(str,vbnewline)
            re.pattern="<img.[^>]*src(=| )(.[^>]*)>"
            str=re.replace(str,"[img]$2[/img]")
            re.pattern="<(.[^>]*)>"
            str=re.replace(str,"")
            set re=nothing
            replacehtml=str
    end function


'---------------获取客户端和服务端的一些信息-------------------

    '****************************************************
    '函数名:getip
    '作  用:获取客户端ip地址
    '返回值:客户端ip地址
    '****************************************************
    public function getip()
        dim temp
        temp = request.servervariables("http_x_forwarded_for")
        if temp = "" or isnull(temp) or isempty(temp) then temp = request.servervariables("remote_addr")
        if instr(temp,"'")>0 then temp="0.0.0.0"
        getip = temp
    end function

    '****************************************************
    '函数名:getbrowser
    '作  用:获取客户端浏览器信息
    '返回值:客户端浏览器信息
    '****************************************************
    public function getbrowser()
           info=request.servervariables(http_user_agent) 
        if instr(info,"netcaptor 6.5.0")>0 then
            browser="netcaptor 6.5.0"
        elseif instr(info,"myie 3.1")>0 then
            browser="myie 3.1"
        elseif instr(info,"netcaptor 6.5.0rc1")>0 then
            browser="netcaptor 6.5.0rc1"
        elseif instr(info,"netcaptor 6.5.pb1")>0 then
            browser="netcaptor 6.5.pb1"
        elseif instr(info,"msie 5.5")>0 then
            browser="internet explorer 5.5"
        elseif instr(info,"msie 6.0")>0 then
            browser="internet explorer 6.0"
        elseif instr(info,"msie 6.0b")>0 then
            browser="internet explorer 6.0b"
        elseif instr(info,"msie 5.01")>0 then
            browser="internet explorer 5.01"
        elseif instr(info,"msie 5.0")>0 then
            browser="internet explorer 5.00"
        elseif instr(info,"msie 4.0")>0 then
            browser="internet explorer 4.01"
        else
            browser="其它"
        end if
    end function

    '****************************************************
    '函数名:getsystem
    '作  用:获取客户端操作系统
    '返回值:客户端操作系统
    '****************************************************
    function getsystem()
        info=request.servervariables(http_user_agent) 
        if instr(info,"nt 5.1")>0 then
            system="windows xp"
        elseif instr(info,"tel")>0 then
            system="telport"
        elseif instr(info,"webzip")>0 then
            system="webzip"
        elseif instr(info,"flashget")>0 then
            system="flashget"
        elseif instr(info,"offline")>0 then
            system="offline"
        elseif instr(info,"nt 5")>0 then
            system="windows 2000"
        elseif instr(info,"nt 4")>0 then
            system="windows nt4"
        elseif instr(info,"98")>0 then
            system="windows 98"
        elseif instr(info,"95")>0 then
            system="windows 95"
        elseif instr(info,"unix") or instr(info,"linux") or instr(info,"sunos") or instr(info,"bsd") then
            system="类unix"
        elseif instr(thesoft,"mac") then
            system="mac"
        else
            system="其它"
        end if
    end function

    '****************************************************
    '函数名:geturl
    '作  用:获取url包括参数
    '返回值:获取url包括参数
    '****************************************************
    public function geturl()   
        dim strtemp     
        strtemp=request.servervariables("script_name")      
        if  trim(request.querystring)<> "" then
            strtemp=strtemp&"?"
            for each m_item in request.querystring
                strtemp=strtemp&m_item&"="&server.urlencode(trim(request.querystring(""&m_item&"")))
            next
        end if
        geturl=strtemp   
    end function 

    '****************************************************
    '函数名:curl
    '作  用:获取当前页面url的函数
    '返回值:当前页面url的函数
    '****************************************************
    function curl()
        domain_name = lcase(request.servervariables("server_name"))
        page_name = lcase(request.servervariables("script_name"))
        quary_name = lcase(request.servervariables("quary_string"))
        if quary_name ="" then
            curl = "http://"&domain_name&page_name
        else
            curl = "http://"&domain_name&page_name&"?"&quary_name
        end if
    end function

    '****************************************************
    '函数名:getextend
    '作  用:取得文件扩展名
    '参  数:filename ----文件名
    '****************************************************
    public function getextend(filename)
        dim tmp
        if filename<>"" then
            tmp=mid(filename,instrrev(filename,".")+1,len(filename)-instrrev(filename,"."))
            tmp=lcase(tmp)
            if instr(1,tmp,"asp")>0 or instr(1,tmp,"php")>0 or instr(1,tmp,"php3")>0 or instr(1,tmp,"aspx")>0 then
                getextend="txt"
            else
                getextend=tmp
            end if
        else
            getextend=""
        end if
    end function
'------------------数据库的操作-----------------------

    '****************************************************
    '函数名:checkexist
    '作  用:检测某个表中某个字段是否存在某个内容
    '参  数:table        ----表名
    '       fieldname    ----字段名
    '       fieldcontent ----字段内容
    '       isblur       ----是否模糊匹配
    '返回值:false不存在,true存在
    '****************************************************
    function checkexist(table,fieldname,fieldcontent,isblur)
        checkexist=false
        if isblur=1 then
            set rscheckexist=conn.execute("select * from "&table&" where "&fieldname&" like '%"&fieldcontent&"%'")
        else
            set rscheckexist=conn.execute("select * from "&table&" where "&fieldname&"= '"&fieldcontent&"'")
        end if
        if not (rscheckexist.eof and rscheckexist.bof) then checkexist=true
        rscheckexist.close
        set rscheckexist=nothing
    end function

    '****************************************************
    '函数名:getnum
    '作  用:检测某个表某个字段的数量或最大值或最小值
    '参  数:table      ----表名
    '       fieldname  ----字段名
    '       resulttype ----还回结果(count/max/min)
    '       args       ----附加参加(order by ...)
    '返回值:数值
    '****************************************************
    function getnum(table,fieldname,resulttype,args)
        getfieldcontentnum=0
        if fieldname="" then fieldname="*"
        sqlgetfieldcontentnum="select "&resulttype&"("&fieldname&") from "&table& args
        set rsgetfieldcontentnum=conn.execute(sqlgetfieldcontentnum)    
        if not (rsgetfieldcontentnum.eof and rsgetfieldcontentnum.bof) then getfieldcontentnum=rsgetfieldcontentnum(0)
        rsgetfieldcontentnum.close
        set rsgetfieldcontentnum=nothing
    end function

    '****************************************************
    '函数名:updatevalue
    '作  用:更新表中某字段某内容的值
    '参  数:table      ----表名
    '        fieldname  ----字段名
    '        fieldvalue ----更新后的值
    '        id         ----id
    '        url        -------更新后转向地址
    '返回值:无
    '****************************************************
    public function updatevalue(table,fieldname,fieldvalue,id,url)
        conn.execute("update "&table&" set "&fieldname&"="&fieldvalue&" where id="&clng(trim(id)))
        if url<>"" then response.redirect url
    end function

'---------------服务端信息和操作-----------------------

    '****************************************************
    '函数名:getfoldersize
    '作  用:计算某个文件夹的大小
    '参  数:filename ----文件夹路径及文件夹名称
    '返回值:数值
    '****************************************************
    public function getfoldersize(folderpath)
        dim fso,d,size,showsize
        set fso=server.createobject("scripting.filesystemobject")         
        drvpath=server.mappath(folderpath)     
        if fso.folderexists(drvpath) then
            set d=fso.getfolder(drvpath)         
            size=d.size
            getfoldersize=formatsize(size)
        else
            getfoldersize=folderpath&"文件夹不存在"
        end if 
    end function

    '****************************************************
    '函数名:getfilesize
    '作  用:计算某个文件的大小
    '参  数:filename ----文件路径及文件名
    '返回值:数值
    '****************************************************
    public function getfilesize(filename)
        dim fso,drvpath,d,size,showsize
        set fso=server.createobject("scripting.filesystemobject")
        filepath=server.mappath(filename)
        if fso.fileexists(filepath) then
            set d=fso.getfile(filepath)    
            size=d.size
            getfilesize=formatsize(size)
        else
            getfilesize=filename&"文件不存在"
        end if
        set fso=nothing
    end function

    '****************************************************
    '函数名:isobjinstalled
    '作  用:检查组件是否安装
    '参  数:strclassstring ----组件名称
    '返回值:false不存在,true存在
    '****************************************************
    public function isobjinstalled(strclassstring)
        on error resume next
        isobjinstalled=false
        err=0
        dim xtestobj
        set xtestobj=server.createobject(strclassstring)
        if 0=err then isobjinstalled=true
        set xtestobj=nothing
        err=0
    end function

    '****************************************************
    '函数名:sendmail
    '作  用:用jmail组件发送邮件
    '参  数:serveraddress ----服务器地址
    '       addrecipient  ----收信人地址
    '       subject       ----主题
    '       body          ----信件内容
    '       sender        ----发信人地址
    '****************************************************
    public function sendmail(mailserveraddress,addrecipient,subject,body,sender,mailfrom)
        on error resume next
        dim jmail
        set jmail=server.createobject("jmail.smtpmail")
        if err then
            sendmail= "没有安装jmail组件"
            err.clear
            exit function
        end if
        jmail.logging=true
        jmail.charset="gb2312"
        jmail.contenttype = "text/html"
        jmail.serveraddress=mailserveraddress
        jmail.addrecipient=addrecipient
        jmail.subject=subject
        jmail.body=mailbody
        jmail.sender=sender
        jmail.from = mailfrom
        jmail.priority=1
        jmail.execute 
        set jmail=nothing 
        if err then 
            sendmail=err.description
            err.clear
        else
            sendmail="ok"
        end if
    end function

    '****************************************************
    '函数名:responsecookies
    '作  用:写入cookies
    '参  数:key ----cookie名
    '        value ----cookie值
    '        expires ---- cookie过期时间
    '****************************************************
    public function responsecookies(key,value,expires)
        domainpath=left(request.servervariables("script_name"),instrrev(request.servervariables("script_name"),"/"))
        response.cookies(key)=""&value&""
        if expires<>0 then response.cookies(key).expires=date+expires
        response.cookies(key).path=domainpath
    end function

    '****************************************************
    '函数名:cleancookies
    '作  用:清除cookies
    '****************************************************
    public function cleancookies()
        domainpath=left(request.servervariables("script_name"),instrrev(request.servervariables("script_name"),"/"))
        for each objcookie in request.cookies
            response.cookies(objcookie)= ""
            response.cookies(objcookie).path=domainpath
        next
    end function

    '****************************************************
    '函数名:gettimeover
    '作  用:清除cookies
    '参  数:flag ---显示时间单位1=秒,否则毫秒
    '****************************************************
    public function gettimeover(flag)
        dim endtime
        if flag = 1 then
            endtime=formatnumber(timer() - starttime, 6, true)
            gettimeover = " 本页执行时间: " & endtime & " 秒"
        else
            endtime=formatnumber((timer() - starttime) * 1000, 3, true)
            gettimeover =" 本页执行时间: " & endtime & " 毫秒"
        end if
    end function
'-----------------系列格式化------------------------

    '****************************************************
    '函数名:formatsize
    '作  用:大小格式化
    '参  数:size ----要格式化的大小
    '****************************************************
    public function formatsize(dsize)
        if dsize>=1073741824 then
            formatsize=formatnumber(dsize/1073741824,2) & " gb"
        elseif dsize>=1048576 then
            formatsize=formatnumber(dsize/1048576,2) & " mb"
        elseif dsize>=1024 then
            formatsize=formatnumber(dsize/1024,2) & " kb"
        else
            formatsize=dsize & " byte"
        end if
    end function

    '****************************************************
    '函数名:formattime
    '作  用:时间格式化
    '参  数:datetime ----要格式化的时间
    '       format   ----格式的形式
    '****************************************************
    public function formattime(datetime,format) 
        select case format
        case "1"
             formattime=""&year(datetime)&"年"&month(datetime)&"月"&day(datetime)&"日"
        case "2"
             formattime=""&month(datetime)&"月"&day(datetime)&"日"
        case "3" 
             formattime=""&year(datetime)&"/"&month(datetime)&"/"&day(datetime)&""
        case "4"
             formattime=""&month(datetime)&"/"&day(datetime)&""
        case "5"
             formattime=""&month(datetime)&"月"&day(datetime)&"日"&formatdatetime(datetime,4)&""
        case "6"
           temp="周日,周一,周二,周三,周四,周五,周六"
           temp=split(temp,",") 
           formattime=temp(weekday(datetime)-1)
        case else
        formattime=datetime
        end select
    end function

'----------------------杂项---------------------
    '****************************************************
    '函数名:zodiac
    '作  用:取得生消
    '参  数:birthday ----生日
    '****************************************************
    public function zodiac(birthday)
        if isdate(birthday) then
            birthyear=year(birthday)
            zodiaclist=array("猴","鸡","狗","猪","鼠","牛","虎","兔","龙","蛇","马","羊")        
            zodiac=zodiaclist(birthyear mod 12)
        end if
    end function

    '****************************************************
    '函数名:constellation
    '作  用:取得星座
    '参  数:birthday ----生日
    '****************************************************
    public function constellation(birthday)
        if isdate(birthday) then
            constellationmon=month(birthday)
            constellationday=day(birthday)
            if len(constellationmon)<2 then constellationmon="0"&constellationmon
            if len(constellationday)<2 then constellationday="0"&constellationday
            myconstellation=constellationmon&constellationday
            if myconstellation < 0120 then
                constellation="<img src=images/constellation/g.gif title='魔羯座 capricorn'>"
            elseif myconstellation < 0219 then
                constellation="<img src=images/constellation/h.gif title='水瓶座 aquarius'>"
            elseif myconstellation < 0321 then
                constellation="<img src=images/constellation/i.gif title='双鱼座 pisces'>"
            elseif myconstellation < 0420 then
                constellation="<img src=images/constellation/^.gif title='白羊座 aries'>"
            elseif myconstellation < 0521 then
                constellation="<img src=images/constellation/_.gif title='金牛座 taurus'>"
            elseif myconstellation < 0622 then
                constellation="<img src=images/constellation/`.gif title='双子座 gemini'>"
            elseif myconstellation < 0723 then
                constellation="<img src=images/constellation/a.gif title='巨蟹座 cancer'>"
            elseif myconstellation < 0823 then
                constellation="<img src=images/constellation/b.gif title='狮子座 leo'>"
            elseif myconstellation < 0923 then
                constellation="<img src=images/constellation/c.gif title='处女座 virgo'>"
            elseif myconstellation < 1024 then
                constellation="<img src=images/constellation/d.gif title='天秤座 libra'>"
            elseif myconstellation < 1122 then
                constellation="<img src=images/constellation/e.gif title='天蝎座 scorpio'>"
            elseif myconstellation < 1222 then
                constellation="<img src=images/constellation/f.gif title='射手座 sagittarius'>"
            elseif myconstellation > 1221 then
                constellation="<img src=images/constellation/g.gif title='魔羯座 capricorn'>"
            end if
        end if
    end function

    '=================================================
    '函数名:autopage
    '作  用:长文章自动分页
    '参  数:id,content,urlact
    '=================================================
    function autopage(content,paramater,pagevar)
            contentstr=split(content,pagevar) 
            pagesize=ubound(contentstr)
            if pagesize>0 then
                if int(request("page"))="" or int(request("page"))=0 then 
                    pagenum=1 
                else 
                    pagenum=request("page") 
                end if 
                if pagenum-1<=pagesize then
                    autopage=autopage&contentstr(pagenum-1)
                    autopage=autopage&"<div style=""margin-top:10px;text-align:right;padding-right:15px;""><font color=blue>页码:</font><font color=red>"
                    for i=0 to pagesize 
                        if i=pagenum-1 then 
                            autopage=autopage&"[<font color=red>"&i+1&"</font>] "
                        else 
                            if instr(paramater,"?")>0 then
                                autopage=autopage&"<a href="""&paramater&"&page="&i+1&""">["&(i+1)&"]</a>"
                            else
                                autopage=autopage&"<a href="""&paramater&"?page="&i+1&""">["&(i+1)&"]</a>"
                            end if
                        end if  
                    next 
                    autopage=autopage&"</font></div>"
                else
                    autopage=autopage&"非法操作!页号超出!<a href=javascript:history.back(-1)><u>返回</u></a>"
                end if
            else
                autopage=content
            end if
    end function
end class
%>

调用:set fun=new cls_fun