在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
复制代码 代码如下: '================================================== '函数名:GetHttpPage '作 用:获取网页源码 '参 数:HttpUrl ------网页地址 '================================================== Function GetHttpPage(HttpUrl) If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$" Then GetHttpPage="$False$" Exit Function End If Dim Http Set Http=server.createobject("MSX" & "ML2.XM" & "LHT" & "TP") Http.open "GET",HttpUrl,False Http.Send() If Http.Readystate<>4 then Set Http=Nothing GetHttpPage="$False$" Exit function End if GetHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") GetHTTPPage=replace(replace(GetHTTPPage , vbCr,""),vbLf,"") Set Http=Nothing If Err.number<>0 then Err.Clear End If End Function '================================================== '函数名:BytesToBstr '作 用:将获取的源码转换为中文 '参 数:Body ------要转换的变量 '参 数:Cset ------要转换的类型 '================================================== Function BytesToBstr(Body,Cset) Dim Objstream Set Objstream = Server.CreateObject("ad" & "odb.str" & "eam") objstream.Type = 1 objstream.Mode =3 objstream.Open objstream.Write body objstream.Position = 0 objstream.Type = 2 objstream.Charset = Cset BytesToBstr = objstream.ReadText objstream.Close set objstream = nothing End Function '================================================== '函数名:PostHttpPage '作 用:登录 '================================================== Function PostHttpPage(RefererUrl,PostUrl,PostData) Dim xmlHttp Dim RetStr Set xmlHttp = CreateObject("Msx" & "ml2.XM" & "LHT" & "TP") xmlHttp.Open "POST", PostUrl, False XmlHTTP.setRequestHeader "Content-Length",Len(PostData) xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlHttp.setRequestHeader "Referer", RefererUrl xmlHttp.Send PostData If Err.Number <> 0 Then Set xmlHttp=Nothing PostHttpPage = "$False$" Exit Function End If PostHttpPage=bytesToBSTR(xmlHttp.responseBody,"GB2312") Set xmlHttp = nothing End Function '================================================== '函数名:UrlEncoding '作 用:转换编码 '================================================== Function UrlEncoding(DataStr) Dim StrReturn,Si,ThisChr,InnerCode,Hight8,Low8 StrReturn = "" For Si = 1 To Len(DataStr) ThisChr = Mid(DataStr,Si,1) If Abs(Asc(ThisChr)) < &HFF Then StrReturn = StrReturn & ThisChr Else InnerCode = Asc(ThisChr) If InnerCode < 0 Then InnerCode = InnerCode + &H10000 End If Hight8 = (InnerCode And &HFF00)\ &HFF Low8 = InnerCode And &HFF StrReturn = StrReturn & "%" & Hex(Hight8) & "%" & Hex(Low8) End If Next UrlEncoding = StrReturn End Function '================================================== '函数名:GetBody '作 用:截取字符串 '参 数:ConStr ------将要截取的字符串 '参 数:StartStr ------开始字符串 '参 数:OverStr ------结束字符串 '参 数:IncluL ------是否包含StartStr '参 数:IncluR ------是否包含OverStr '================================================== Function GetBody(ConStr,StartStr,OverStr,IncluL,IncluR) If ConStr="$False$" or ConStr="" or IsNull(ConStr)=True Or StartStr="" or IsNull(StartStr)=True Or OverStr="" or IsNull(OverStr)=True Then GetBody="$False$" Exit Function End If Dim ConStrTemp Dim Start,Over ConStrTemp=Lcase(ConStr) StartStr=Lcase(StartStr) OverStr=Lcase(OverStr) Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare) If Start<=0 then GetBody="$False$" Exit Function Else If IncluL=False Then Start=Start+LenB(StartStr) End If End If Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare) If Over<=0 Or Over<=Start then GetBody="$False$" Exit Function Else If IncluR=True Then Over=Over+LenB(OverStr) End If End If GetBody=MidB(ConStr,Start,Over-Start) End Function '================================================== '函数名:GetArray '作 用:提取链接地址,以$Array$分隔 '参 数:ConStr ------提取地址的原字符 '参 数:StartStr ------开始字符串 '参 数:OverStr ------结束字符串 '参 数:IncluL ------是否包含StartStr '参 数:IncluR ------是否包含OverStr '================================================== Function GetArray(Byval ConStr,StartStr,OverStr,IncluL,IncluR) If ConStr="$False$" or ConStr="" Or IsNull(ConStr)=True or StartStr="" Or OverStr="" or IsNull(StartStr)=True Or IsNull(OverStr)=True Then GetArray="$False$" Exit Function End If Dim TempStr,TempStr2,objRegExp,Matches,Match TempStr="" Set objRegExp = New Regexp objRegExp.IgnoreCase = True objRegExp.Global = True objRegExp.Pattern = "("&StartStr&").+?("&OverStr&")" Set Matches =objRegExp.Execute(ConStr) For Each Match in Matches TempStr=TempStr & "$Array$" & Match.Value Next Set Matches=nothing If TempStr="" Then GetArray="$False$" Exit Function End If TempStr=Right(TempStr,Len(TempStr)-7) If IncluL=False then objRegExp.Pattern =StartStr TempStr=objRegExp.Replace(TempStr,"") End if If IncluR=False then objRegExp.Pattern =OverStr TempStr=objRegExp.Replace(TempStr,"") End if Set objRegExp=nothing Set Matches=nothing TempStr=Replace(TempStr,"""","") TempStr=Replace(TempStr,"'","") TempStr=Replace(TempStr," ","") TempStr=Replace(TempStr,"(","") TempStr=Replace(TempStr,")","") If TempStr="" then GetArray="$False$" Else GetArray=TempStr End if End Function '================================================== '函数名:DefiniteUrl '作 用:将相对地址转换为绝对地址 '参 数:PrimitiveUrl ------要转换的相对地址 '参 数:ConsultUrl ------当前网页地址 '================================================== Function DefiniteUrl(Byval PrimitiveUrl,Byval ConsultUrl) Dim ConTemp,PriTemp,Pi,Ci,PriArray,ConArray If PrimitiveUrl="" or ConsultUrl="" or PrimitiveUrl="$False$" or ConsultUrl="$False$" Then DefiniteUrl="$False$" Exit Function End If If Left(Lcase(ConsultUrl),7)<>"http://" Then ConsultUrl= "http://" & ConsultUrl End If ConsultUrl=Replace(ConsultUrl,"\","/") ConsultUrl=Replace(ConsultUrl,"://",":\\") PrimitiveUrl=Replace(PrimitiveUrl,"\","/") If Right(ConsultUrl,1)<>"/" Then If Instr(ConsultUrl,"/")>0 Then If Instr(Right(ConsultUrl,Len(ConsultUrl)-InstrRev(ConsultUrl,"/")),".")>0 then Else ConsultUrl=ConsultUrl & "/" End If Else ConsultUrl=ConsultUrl & "/" End If End If ConArray=Split(ConsultUrl,"/") If Left(LCase(PrimitiveUrl),7) = "http://" then DefiniteUrl=Replace(PrimitiveUrl,"://",":\\") ElseIf Left(PrimitiveUrl,1) = "/" Then DefiniteUrl=ConArray(0) & PrimitiveUrl ElseIf Left(PrimitiveUrl,2)="./" Then PrimitiveUrl=Right(PrimitiveUrl,Len(PrimitiveUrl)-2) If Right(ConsultUrl,1)="/" Then DefiniteUrl=ConsultUrl & PrimitiveUrl Else DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & PrimitiveUrl End If ElseIf Left(PrimitiveUrl,3)="../" then Do While Left(PrimitiveUrl,3)="../" PrimitiveUrl=Right(PrimitiveUrl,Len(PrimitiveUrl)-3) Pi=Pi+1 Loop For Ci=0 to (Ubound(ConArray)-1-Pi) If DefiniteUrl<>"" Then DefiniteUrl=DefiniteUrl & "/" & ConArray(Ci) Else DefiniteUrl=ConArray(Ci) End If Next DefiniteUrl=DefiniteUrl & "/" & PrimitiveUrl Else If Instr(PrimitiveUrl,"/")>0 Then PriArray=Split(PrimitiveUrl,"/") If Instr(PriArray(0),".")>0 Then If Right(PrimitiveUrl,1)="/" Then DefiniteUrl="http:\\" & PrimitiveUrl Else If Instr(PriArray(Ubound(PriArray)-1),".")>0 Then DefiniteUrl="http:\\" & PrimitiveUrl Else DefiniteUrl="http:\\" & PrimitiveUrl & "/" End If End If Else If Right(ConsultUrl,1)="/" Then DefiniteUrl=ConsultUrl & PrimitiveUrl Else DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & PrimitiveUrl End If End If Else If Instr(PrimitiveUrl,".")>0 Then If Right(ConsultUrl,1)="/" Then If right(LCase(PrimitiveUrl),3)=".cn" or right(LCase(PrimitiveUrl),3)="com" or right(LCase(PrimitiveUrl),3)="net" or right(LCase(PrimitiveUrl),3)="org" Then DefiniteUrl="http:\\" & PrimitiveUrl & "/" Else DefiniteUrl=ConsultUrl & PrimitiveUrl End If Else If right(LCase(PrimitiveUrl),3)=".cn" or right(LCase(PrimitiveUrl),3)="com" or right(LCase(PrimitiveUrl),3)="net" or right(LCase(PrimitiveUrl),3)="org" Then DefiniteUrl="http:\\" & PrimitiveUrl & "/" Else DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrl End If End If Else If Right(ConsultUrl,1)="/" Then DefiniteUrl=ConsultUrl & PrimitiveUrl & "/" Else DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrl & "/" End If End If End If End If If Left(DefiniteUrl,1)="/" then DefiniteUrl=Right(DefiniteUrl,Len(DefiniteUrl)-1) End if If DefiniteUrl<>"" Then DefiniteUrl=Replace(DefiniteUrl,"//","/") DefiniteUrl=Replace(DefiniteUrl,":\\","://") Else DefiniteUrl="$False$" End If End Function '================================================== '函数名:ReplaceSaveRemoteFile '作 用:替换、保存远程图片 '参 数:ConStr ------ 要替换的字符串 '参 数:SaveTf ------ 是否保存文件,False不保存,True保存 '参 数: TistUrl------ 当前网页地址 '================================================== Function ReplaceSaveRemoteFile(ConStr,InstallPath,strChannelDir,SaveTf,TistUrl) If ConStr="$False$" or ConStr="" or InstallPath="" or strChannelDir="" Then ReplaceSaveRemoteFile=ConStr Exit Function End If Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2 Set Re = New Regexp Re.IgnoreCase = True Re.Global = True Re.Pattern ="<img.+?>" Set Matches =Re.Execute(ConStr) For Each Match in Matches If TempStr<>"" then TempStr=TempStr & "$Array$" & Match.Value Else TempStr=Match.Value End if Next If TempStr<>"" Then TempArray=Split(TempStr,"$Array$") TempStr="" For Tempi=0 To Ubound(TempArray) Re.Pattern ="src\s*=\s*.+?\.(gifjpgbmpjpegpsdpngsvgdxfwmftiff)" Set Matches =Re.Execute(TempArray(Tempi)) For Each Match in Matches If TempStr<>"" then TempStr=TempStr & "$Array$" & Match.Value Else TempStr=Match.Value End if Next Next End if If TempStr<>"" Then Re.Pattern ="src\s*=\s*" TempStr=Re.Replace(TempStr,"") End If Set Matches=nothing Set Re=nothing If TempStr="" or IsNull(TempStr)=True Then ReplaceSaveRemoteFile=ConStr Exit function End if TempStr=Replace(TempStr,"""","") TempStr=Replace(TempStr,"'","") TempStr=Replace(TempStr," ","") Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path DtNow=Now() '*********************************** If SaveTf=True then SavePath=InstallPath&strChannelDir If CheckDir(InstallPath & strChannelDir)=False Then If Not CreateMultiFolder(InstallPath & strChannelDir) Then response.Write InstallPath & strChannelDir&"目录创建失败" SaveTf=False End If End If End If '去掉重复图片开始 TempArray=Split(TempStr,"$Array$") TempStr="" For Tempi=0 To Ubound(TempArray) If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1 Then TempStr=TempStr & "$Array$" & TempArray(Tempi) End If Next TempStr=Right(TempStr,Len(TempStr)-7) TempArray=Split(TempStr,"$Array$") '去掉重复图片结束 response.Write "<br>发现图片:<br>"&Replace(TempStr,"$Array$","<br>") '转换相对图片地址开始 TempStr="" For Tempi=0 To Ubound(TempArray) TempStr=TempStr & "$Array$" & DefiniteUrl(TempArray(Tempi),TistUrl) Next TempStr=Right(TempStr,Len(TempStr)-7) TempStr=Replace(TempStr,Chr(0),"") TempArray2=Split(TempStr,"$Array$") TempStr="" '转换相对图片地址结束 '图片替换/保存 Set Re = New Regexp Re.IgnoreCase = True Re.Global = True For Tempi=0 To Ubound(TempArray2) '******************************** RemoteFileUrl=TempArray2(Tempi) If RemoteFileUrl<>"$False$" And SaveTf=True Then'保存图片 ArrSaveFileName = Split(RemoteFileurl,".") strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件类型 If strFileType="asp" or strFileType="asa" or strFileType="aspx" or strFileType="cer" or strFileType="cdx" or strFileType="exe" or strFileType="rar" or strFileType="zip" then UploadFiles="" ReplaceSaveRemoteFile=ConStr Exit Function End If Randomize RanNum=Int(900*Rnd)+100 strFileName = year(DtNow) & right("0" & month(DtNow),2) & right("0" & day(DtNow),2) & right("0" & hour(DtNow),2) & right("0" & minute(DtNow),2) & right("0" & second(DtNow),2) & ranNum & "." & strFileType Re.Pattern =TempArray(Tempi) response.Write "<br>保存到本地地址:"&InstallPath & strChannelDir & strFileName If SaveRemoteFile(InstallPath & strChannelDir & strFileName,RemoteFileUrl,RemoteFileUrl)=True Then response.Write "<font color=blue>成功</font><br>" PathTemp=InstallPath & strChannelDir & strFileName ConStr=Re.Replace(ConStr,PathTemp) Re.Pattern=InstallPath&strChannelDir UploadFiles=UploadFiles & "" & InstallPath & strChannelDir & strFileName Else PathTemp=RemoteFileUrl ConStr=Re.Replace(ConStr,PathTemp) End If ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片 Re.Pattern =TempArray(Tempi) ConStr=Re.Replace(ConStr,RemoteFileUrl) End If '******************************** Next Set Re=nothing ReplaceSaveRemoteFile=ConStr End function '================================================== '函数名:ReplaceSwfFile '作 用:解析动画路径 '参 数:ConStr ------ 要替换的字符串 '参 数: TistUrl------ 当前网页地址 '================================================== Function ReplaceSwfFile(ConStr,TistUrl) If ConStr="$False$" or ConStr="" or TistUrl="" or TistUrl="$False$" Then ReplaceSwfFile=ConStr Exit Function End If Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2 Set Re = New Regexp Re.IgnoreCase = True Re.Global = True Re.Pattern ="<object.+?[^\>]>" Set Matches =Re.Execute(ConStr) For Each Match in Matches If TempStr<>"" then TempStr=TempStr & "$Array$" & Match.Value Else TempStr=Match.Value End if Next If TempStr<>"" Then TempArray=Split(TempStr,"$Array$") TempStr="" For Tempi=0 To Ubound(TempArray) Re.Pattern ="value\s*=\s*.+?\.swf" Set Matches =Re.Execute(TempArray(Tempi)) For Each Match in Matches If TempStr<>"" then TempStr=TempStr & "$Array$" & Match.Value Else TempStr=Match.Value End if Next Next End if If TempStr<>"" Then Re.Pattern ="value\s*=\s*" TempStr=Re.Replace(TempStr,"") End If If TempStr="" or IsNull(TempStr)=True Then ReplaceSwfFile=ConStr Exit function End if TempStr=Replace(TempStr,"""","") TempStr=Replace(TempStr,"'","") TempStr=Replace(TempStr," ","") Set Matches=nothing Set Re=nothing '去掉重复文件开始 TempArray=Split(TempStr,"$Array$") TempStr="" For Tempi=0 To Ubound(TempArray) If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1 Then TempStr=TempStr & "$Array$" & TempArray(Tempi) End If Next TempStr=Right(TempStr,Len(TempStr)-7) TempArray=Split(TempStr,"$Array$") '去掉重复文件结束 '转换相对地址开始 TempStr="" For Tempi=0 To Ubound(TempArray) TempStr=TempStr & "$Array$" & DefiniteUrl(TempArray(Tempi),TistUrl) Next TempStr=Right(TempStr,Len(TempStr)-7) TempStr=Replace(TempStr,Chr(0),"") TempArray2=Split(TempStr,"$Array$") TempStr="" '转换相对地址结束 '替换 Set Re = New Regexp Re.IgnoreCase = True Re.Global = True For Tempi=0 To Ubound(TempArray2) RemoteFileUrl=TempArray2(Tempi) Re.Pattern =TempArray(Tempi) ConStr=Re.Replace(ConStr,RemoteFileUrl) Next Set Re=nothing ReplaceSwfFile=ConStr End function '================================================== '过程名:SaveRemoteFile '作 用:保存远程的文件到本地 '参 数:LocalFileName ------ 本地文件名 '参 数:RemoteFileUrl ------ 远程文件URL '参 数:Referer ------ 远程调用文件(对付防采集的,用内容页地址,没有防的留空) '================================================== Function SaveRemoteFile(LocalFileName,RemoteFileUrl,Referer) SaveRemoteFile=True dim Ads,Retrieval,GetRemoteData Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") With Retrieval .Open "Get", RemoteFileUrl, False, "", "" if Referer<>"" then .setRequestHeader "Referer",Referer .Send If .Readystate<>4 then SaveRemoteFile=False Exit Function End If GetRemoteData = .ResponseBody End With Set Retrieval = Nothing Set Ads = Server.CreateObject("Adodb.Stream") With Ads .Type = 1 .Open .Write GetRemoteData .SaveToFile server.MapPath(LocalFileName),2 .Cancel() .Close() End With Set Ads=nothing end Function '================================================== '函数名:GetPaing '作 用:获取分页 '================================================== Function GetPaing(Byval ConStr,StartStr,OverStr,IncluL,IncluR) If ConStr="$False$" or ConStr="" Or StartStr="" Or OverStr="" or IsNull(ConStr)=True or IsNull(StartStr)=True Or IsNull(OverStr)=True Then GetPaing="$False$" Exit Function End If Dim Start,Over,ConTemp,TempStr TempStr=LCase(ConStr) StartStr=LCase(StartStr) OverStr=LCase(OverStr) Over=Instr(1,TempStr,OverStr) If Over<=0 Then GetPaing="$False$" Exit Function Else If IncluR=True Then Over=Over+Len(OverStr) End If End If TempStr=Mid(TempStr,1,Over) Start=InstrRev(TempStr,StartStr) If IncluL=False Then Start=Start+Len(StartStr) End If If Start<=0 Or Start>=Over Then GetPaing="$False$" Exit Function End If ConTemp=Mid(ConStr,Start,Over-Start) ConTemp=Trim(ConTemp) 'ConTemp=Replace(ConTemp," ","") ConTemp=Replace(ConTemp,",","") ConTemp=Replace(ConTemp,"'","") ConTemp=Replace(ConTemp,"""","") ConTemp=Replace(ConTemp,">","") ConTemp=Replace(ConTemp,"<","") ConTemp=Replace(ConTemp," ;","") GetPaing=ConTemp End Function '************************************************* '函数名:gotTopic '作 用:截字符串,汉字一个算两个字符,英文算一个字符 '参 数:str ----原字符串 ' strlen ----截取长度 '返回值:截取后的字符串 '************************************************* function gotTopic(str,strlen) if str="" then gotTopic="" exit function end if dim l,t,c, i str=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 gotTopic=left(str,i) & "…" exit for else gotTopic=str end if next gotTopic=replace(replace(replace(replace(gotTopic," "," "),chr(34),"""),">",">"),"<","<;") end function '*********************************************** '函数名:JoinChar '作 用:向地址中加入 ? 或 & '参 数:strUrl ----网址 '返回值:加了 ? 或 & 的网址 '*********************************************** function JoinChar(strUrl) if strUrl="" then JoinChar="" exit function end if if InStr(strUrl,"?")<len(strUrl) then if InStr(strUrl,"?")>1 then if InStr(strUrl,"&")<len(strUrl) then JoinChar=strUrl & "&" else JoinChar=strUrl end if else JoinChar=strUrl & "?" end if else JoinChar=strUrl end if end function '************************************************** '函数名:CreateKeyWord '作 用:由给定的字符串生成关键字 '参 数:Constr---要生成关键字的原字符串 '返回值:生成的关键字 '************************************************** Function CreateKeyWord(byval Constr,Num) If Constr="" or IsNull(Constr)=True or Constr="$False$" Then CreateKeyWord="$False$" Exit Function End If If Num="" or IsNumeric(Num)=False Then Num=2 End If Constr=Replace(Constr,CHR(32),"") Constr=Replace(Constr,CHR(9),"") Constr=Replace(Constr," ","") Constr=Replace(Constr," ","") Constr=Replace(Constr,"(","") Constr=Replace(Constr,")","") Constr=Replace(Constr,"<","") Constr=Replace(Constr,">","") Constr=Replace(Constr,"""","") Constr=Replace(Constr,"?","") Constr=Replace(Constr,"*","") Constr=Replace(Constr,"","") Constr=Replace(Constr,",","") Constr=Replace(Constr,".","") Constr=Replace(Constr,"/","") Constr=Replace(Constr,"\","") Constr=Replace(Constr,"-","") Constr=Replace(Constr,"@","") Constr=Replace(Constr,"#","") Constr=Replace(Constr,"$","") Constr=Replace(Constr,"%","") Constr=Replace(Constr,"&","") Constr=Replace(Constr,"+","") Constr=Replace(Constr,":","") Constr=Replace(Constr,":","") Constr=Replace(Constr,"‘","") Constr=Replace(Constr,"“","") Constr=Replace(Constr,"”","") Dim i,ConstrTemp For i=1 To Len(Constr) ConstrTemp=ConstrTemp & "" & Mid(Constr,i,Num) Next If Len(ConstrTemp)<254 Then ConstrTemp=ConstrTemp & "" Else ConstrTemp=Left(ConstrTemp,254) & "" End If CreateKeyWord=ConstrTemp End Function '================================================== '函数名:CheckUrl '作 用:检查Url '参 数:strUrl ------ 要检查Url '================================================== Function CheckUrl(strUrl) Dim Re Set Re=new RegExp Re.IgnoreCase =true Re.Global=True Re.Pattern="http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?" If Re.test(strUrl)=True Then CheckUrl=strUrl Else CheckUrl="$False$" End If Set Rs=Nothing End Function '================================================== '函数名:ScriptHtml '作 用:过滤html标记 '参 数:ConStr ------ 要过滤的字符串 '================================================== Function ScriptHtml(Byval ConStr,TagName,FType) Dim Re Set Re=new RegExp Re.IgnoreCase =true Re.Global=True Select Case FType Case 1 Re.Pattern="<" & TagName & "([^>])*>" ConStr=Re.Replace(ConStr,"") Case 2 Re.Pattern="<" & TagName & "([^>])*>.*?</" & TagName & "([^>])*>" ConStr=Re.Replace(ConStr,"") Case 3 Re.Pattern="<" & TagName & "([^>])*>" ConStr=Re.Replace(ConStr,"") Re.Pattern="</" & TagName & "([^>])*>" ConStr=Re.Replace(ConStr,"") End Select ScriptHtml=ConStr Set Re=Nothing End Function '================================================== '函数名:RemoveHTML '作 用:完全去除html标记 '参 数:strHTML ------ 要过滤的字符串 '================================================== Function RemoveHTML(strHTML) Dim objRegExp, Match, Matches Set objRegExp = New Regexp objRegExp.IgnoreCase = True objRegExp.Global = True '取闭合的<> objRegExp.Pattern = "<.+?>" '进行匹配 Set Matches = objRegExp.Execute(strHTML) ' 遍历匹配集合,并替换掉匹配的项目 For Each Match in Matches strHtml=Replace(strHTML,Match.Value,"") Next RemoveHTML=strHTML Set objRegExp = Nothing End Function '================================================== '函数名:CheckDir '作 用:检查文件夹是否存在 '参 数:FolderPath ------ 文件夹路径 '================================================== Function CheckDir(byval FolderPath) dim fso Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.FolderExists(Server.MapPath(folderpath)) then '存在 CheckDir = True Else '不存在 CheckDir = False End if Set fso = nothing End Function '================================================== '函数名:MakeNewsDir '作 用:创建文件夹 '参 数:foldername ------ 文件夹名 '================================================== Function MakeNewsDir(byval foldername) dim fso Set fso = Server.CreateObject("Scri" & "pti" & "ng.Fil" & "eSyst" & "emOb" & "ject") fso.CreateFolder(Server.MapPath(foldername)) If fso.FolderExists(Server.MapPath(foldername)) Then MakeNewsDir = True Else MakeNewsDir = False End If Set fso = nothing End Function '================================================== '函数名:DelDir '作 用:创建文件夹 '参 数:foldername ------ 文件夹名 '================================================== Function DelDir(byval foldername) dim fso Set fso = Server.CreateObject("Scri" & "pti" & "ng.Fil" & "eSyst" & "emOb" & "ject") If fso.FolderExists(Server.MapPath(foldername)) Then '判断文件夹是否存在 fso.DeleteFolder (Server.MapPath(foldername)) '删除文件夹 End If Set fso = nothing End Function '************************************************** '函数名:IsObjInstalled '作 用:检查组件是否已经安装 '参 数:strClassString ----组件名 '返回值:True ----已经安装 ' False ----没有安装 '************************************************** Function IsObjInstalled(strClassString) IsObjInstalled = False Err = 0 Dim xTestObj Set xTestObj = Server.CreateObject(strClassString) If 0 = Err Then IsObjInstalled = True Set xTestObj = Nothing Err = 0 End Function '************************************************** '函数名:strLength '作 用:求字符串长度。汉字算两个字符,英文算一个字符。 '参 数:str ----要求长度的字符串 '返回值:字符串长度 '************************************************** function strLength(str) ON ERROR RESUME NEXT dim WINNT_CHINESE WINNT_CHINESE = (len("中国")=2) if WINNT_CHINESE then dim l,t,c dim i l=len(str) t=l for i=1 to l c=asc(mid(str,i,1)) if c<0 then c=c+65536 if c>255 then t=t+1 end if next strLength=t else strLength=len(str) end if if err.number<>0 then err.clear end function '**************************************************** '函数名:CreateMultiFolder '作 用:创建多级目录,可以创建不存在的根目录 '参 数:要创建的目录名称,可以是多级 '返回逻辑值:True成功,False失败 '创建目录的根目录从当前目录开始 '**************************************************** Function CreateMultiFolder(ByVal CFolder) Dim objFSO,PhCreateFolder,CreateFolderArray,CreateFolder Dim i,ii,CreateFolderSub,PhCreateFolderSub,BlInfo BlInfo = False CreateFolder = CFolder On Error Resume Next Set objFSO = Server.CreateObject("Scri" & "pti" & "ng.Fil" & "eSyst" & "emOb" & "ject") If Err Then Err.Clear() Exit Function End If CreateFolder = Replace(CreateFolder,"\","/") If Left(CreateFolder,1)="/" Then 'CreateFolder = Right(CreateFolder,Len(CreateFolder)-1) End If If Right(CreateFolder,1)="/" Then CreateFolder = Left(CreateFolder,Len(CreateFolder)-1) End If CreateFolderArray = Split(CreateFolder,"/") For i = 0 to UBound(CreateFolderArray) CreateFolderSub = "" For ii = 0 to i CreateFolderSub = CreateFolderSub & CreateFolderArray(ii) & "/" Next PhCreateFolderSub = Server.MapPath(CreateFolderSub) 'response.Write PhCreateFolderSub&"<br>" If Not objFSO.FolderExists(PhCreateFolderSub) Then objFSO.CreateFolder(PhCreateFolderSub) End If Next If Err Then Err.Clear() Else BlInfo = True End If Set objFSO=nothing CreateMultiFolder = BlInfo End Function '************************************************** '函数名:FSOFileRead '作 用:使用FSO读取文件内容的函数 '参 数:filename ----文件名称 '返回值:文件内容 '************************************************** function FSOFileRead(filename) Dim objFSO,objCountFile,FiletempData Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True) FSOFileRead = objCountFile.ReadAll objCountFile.Close Set objCountFile=Nothing Set objFSO = Nothing End Function '************************************************** '函数名:FSOlinedit '作 用:使用FSO读取文件某一行的函数 '参 数:filename ----文件名称 ' lineNum ----行数 '返回值:文件该行内容 '************************************************** function FSOlinedit(filename,lineNum) if linenum < 1 then exit function dim fso,f,temparray,tempcnt set fso = server.CreateObject("scripting.filesystemobject") if not fso.fileExists(server.mappath(filename)) then exit function set f = fso.opentextfile(server.mappath(filename),1) if not f.AtEndofStream then tempcnt = f.readall f.close set f = nothing temparray = split(tempcnt,chr(13)&chr(10)) if lineNum>ubound(temparray)+1 then exit function else FSOlinedit = temparray(lineNum-1) end if end if end function '************************************************** '函数名:FSOlinewrite '作 用:使用FSO写文件某一行的函数 '参 数:filename ----文件名称 ' lineNum ----行数 ' Linecontent ----内容 '返回值:无 '************************************************** function FSOlinewrite(filename,lineNum,Linecontent) if linenum < 1 then exit function dim fso,f,temparray,tempCnt set fso = server.CreateObject("scripting.filesystemobject") if not fso.fileExists(server.mappath(filename)) then exit function set f = fso.opentextfile(server.mappath(filename),1) if not f.AtEndofStream then tempcnt = f.readall f.close temparray = split(tempcnt,chr(13)&chr(10)) if lineNum>ubound(temparray)+1 then exit function else temparray(lineNum-1) = lineContent end if tempcnt = join(temparray,chr(13)&chr(10)) set f = fso.createtextfile(server.mappath(filename),true) f.write tempcnt end if f.close set f = nothing end function '************************************************** '函数名:Htmlmake '作 用:使用FSO创建文件 '参 数:HtmlFolder ----路径 ' HtmlFilename ----文件名 ' HtmlContent ----内容 '************************************************** function Htmlmake(HtmlFolder,HtmlFilename,HtmlContent) On Error Resume Next dim filepath,fso,fout filepath = HtmlFolder&"/"&HtmlFilename Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.FolderExists(HtmlFolder) Then Else CreateMultiFolder(HtmlFolder) &, ;nbs, p; End If Set fout = fso.Createtextfile(server.mappath(filepath),true) fout.writeline HtmlContent fout.close set fso=nothing Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.fileexists(Server.MapPath(filepath)) Then Response.Write "文件<font color=red>"&HtmlFilename&"</font>已生成!<br>" Else 'Response.Write Server.MapPath(filepath) Response.Write "文件<font color=red>"&HtmlFilename&"</font>未生成!<br>" End If Set fso = nothing End function '************************************************** '函数名:Htmldel '作 用:使用FSO删除文件 '参 数:HtmlFolder ----路径 ' HtmlFilename ----文件名 '************************************************** Sub Htmldel(HtmlFolder,HtmlFilename) dim filepath,fso filepath = HtmlFolder&"/"&HtmlFilename Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFile(Server.mappath(filepath)) Set fso = nothing Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.fileexists(Server.MapPath(filepath)) Then Response.Write "文件<font color=red>"&HtmlFilename&"</font>未删除!<br>" Else 'Response.Write Server.MapPath(filepath) Response.Write "文件<font color=red>"&HtmlFilename&"</font>已删除!<br>" End If Set fso = nothing End Sub '================================================= '过程名:HTMLEncode '作 用:过滤HTML格式 '参 数:fString ----转换内容 '================================================= function HTMLEncode(ByVal fString) If IsNull(fString)=False or fString<>"" or fString<>"$False$" Then fString = Replace(fString, ">", ">") fString = Replace(fString, "<", "<") fString = Replace(fString, 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, " ", " ") fString = Replace(fString, CHR(10) & CHR(10), "</P><P>") fString = Replace(fString, Chr(10), "<br /> ") HTMLEncode = fString else HTMLEncode = "$False$" end if end function '================================================= '过程名:unHTMLEncode '作 用:还原HTML格式 '参 数:fString ----转换内容 '================================================= function unHTMLEncode(ByVal fString) If IsNull(fString)=False or fString<>"" or fString<>"$False$" Then fString = Replace(fString, ">", ">") fString = Replace(fString, "<", "<") fString = Replace(fString, " ", Chr(32)) fString = Replace(fString, """, Chr(34)) fString = Replace(fString, "'", Chr(39)) fString = Replace(fString, "", Chr(13)) fString = Replace(fString, " ", " ") fString = Replace(fString, "</P><P>" , CHR(10) & CHR(10)) fString = Replace(fString, "<br> ", Chr(10)) unHTMLEncode = fString else unHTMLEncode = "$False$" end if end function function unhtmllist(content) unhtmllist=content if content <> "" then unhtmllist=replace(unhtmllist,"'","";") unhtmllist=replace(unhtmllist,chr(10),"") unHtmllist=replace(unHtmllist,chr(13),"<br>") end if end function function unhtmllists(content) unhtmllists=content if content <> "" then unhtmllists=replace(unhtmllists,"""",""") unhtmllists=replace(unhtmllists,"'",""") unhtmllists=replace(unhtmllists,chr(10),"") unHtmllists=replace(unHtmllists,chr(13),"<br>") end if end function function htmllists(content) htmllists=content if content <> "" then htmllists=replace(htmllists,"‘'","""") htmllists=replace(htmllists,""","'") htmllists=replace(htmllists,"<br>",chr(13)&chr(10)) end if end function function uhtmllists(content) uhtmllists=content if content <> "" then uhtmllists=replace(uhtmllists,"""","‘'") uhtmllists=replace(uhtmllists,"'","";") uhtmllists=replace(uhtmllists,chr(10),"") uHtmllists=replace(uHtmllists,chr(13),"<br>") end if end function '================================================= '过程: Sleep '功能: 程序在此晢停几秒 '参数: iSeconds 要暂停的秒数 '================================================= Sub Sleep(iSeconds) response.Write "<font color=blue>开始暂停 "&iSeconds&" 秒</font><br>" Dim t:t=Timer() While(Timer()<t+iSeconds) 'Do Nothing Wend response.Write "<font color=blue>暂停 "&iSeconds&" 秒结束</font><br>" End Sub '================================================== '函数名:MyArray '作 用:提取标签,以分隔 '参 数:ConStr ------提取地址的原字符 '================================================== Function MyArray(Byval ConStr) Set objRegExp = New Regexp objRegExp.IgnoreCase = True objRegExp.Global = True objRegExp.Pattern = "({).+?(})" Set Matches =objRegExp.Execute(ConStr) For Each Match in Matches TempStr=TempStr & "" & Match.Value Next Set Matches=nothing TempStr=Right(TempStr,Len(TempStr)-1) objRegExp.Pattern ="{" TempStr=objRegExp.Replace(TempStr,"") objRegExp.Pattern ="}" TempStr=objRegExp.Replace(TempStr,"") Set objRegExp=nothing Set Matches=nothing TempStr=Replace(TempStr,"$","") If TempStr="" then MyArray="在代码中没有可提取的东西" Else MyArray=TempStr End if End Function '================================================== '函数名:randm '作 用:产生6位随机数 '================================================== Function randm randomize randm=Int((900000*rnd)+100000) End Function %> |
请发表评论