国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > ASP > 正文

一個帶采集遠程文章內容,保存圖片,生成文件等完

2024-05-04 11:08:49
字體:
來源:轉載
供稿:網友
本文提供了一套完整的ASP采集功能函數,包含提取地址的原字符,保存遠程的文件到本地模擬登錄,獲取網頁源碼等功能函數
 
 
 
復制代碼代碼如下:

'================================================== 
'函數名: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 
%> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
中文字幕专区| 91精品专区| 在线天堂视频| 99中文字幕一区| 2021av天天| av在线不卡播放| 天堂在线国产| 久久国产精品久久久久久小说| www在线视频观看| 黄色一级片视频| 国产一二区在线观看| 精品一区二区在线欧美| wwww亚洲| 国产视频第一区| 免费午夜一级| 国产99re66在线视频| 亚洲xxxxxx| √天堂中文在线| 91三级在线| 国产乱妇乱子| 9999在线视频| 最近最好的中文字幕2019免费| 精品欧美不卡一区二区在线观看 | 国产夫妻视频| 久久香蕉一区| 亚洲精品在线播放视频| 国产精品综合久久久久| 日本视频在线观看一区二区三区| 中文字幕专区| 天堂在线亚洲| 日本不卡视频一区二区| 2020中文字幕在线播放| 中文字幕在线视频不卡| 开心丁香婷婷深爱五月| 伊人网在线观看| 国产黄在线播放| 尤物在线视频| 成人欧美日韩| 福利视频网址导航| 欧美韩日国产| 福利视频在线看| 九九视频九九热| 国产在线资源| 国产乱xxⅹxx国语对白| 国产日韩欧美第一页| 中文字幕视频在线观看| 免费看ww视频网站入口| 天天插天天干| 久久精品免视着国产成人| 日本视频一二三区中文字幕| 欧美日韩综合高清一区二区| 黄网址在线播放免费| 中文字幕视频在线| 精品卡一卡卡2卡3网站| 天天干天天操天天爽| 激情网站在线| 国产福利视频在线| 日本h视频在线观看| 国产麻豆一区二区三区精品| 国产剧情在线一区| 国产一级免费| av在线官网| 天天av天天爽| 亚洲天堂影院在线观看| а√最新版在线天堂| 国产亚av手机在线观看| 精品街拍一区二区| 久久99精品久久久久久野外| 国产深夜福利| 亚洲成人在线播放| 国产乱子视频| 亚洲国产精品区| 国产亚洲精品午夜高清影院| 四虎www视频| 7777在线| 日本中文字幕高清视频| 一本大道久久精品| 国产天堂素人系列在线视频| av在线播放国产| 最近中文字幕大全中文字幕免费| 伊人av免费在线观看| 国产视频第一区| 欧美日韩视频精品二区| 伊人网在线免费观看| 中文字幕视频在线| 丁香花在线电影| 四虎国产精品永久地址998| 国产啊啊啊视频在线观看| 天堂在线中文资源| 久久五月精品中文字幕 | 中文字幕在线影院| 欧美日韩不卡中文字幕在线| 亚洲网站视频在线观看| 国产黄在线播放| 国产卡1卡2卡三卡在线| www.九九热.com| 亚洲欧美国产另类首页| 精品国内一区二区三区免费视频| 国产一级片网站| 国产精品偷乱一区二区三区| 国产免费av高清在线| 男人天堂99| 久久综合精品视频| gogo在线高清视频| www.91av| 国产毛片毛片| 中文字幕在线视频不卡| 最新国产在线| 国产欧美日韩精品综合| 国产色a在线| 国产jizz| 天堂√中文在线| 欧洲亚洲精品视频| 国产女呦网站| 爱福利在线视频| 99热在线免费观看| 国产激情小视频在线| 精品视频vs精品视频| 99综合精品久久| 日本精品一区二区三区在线播放| 全网国产福利在线播放| 成人午夜无人区一区二区| 国产二区视频在线观看| jizz亚洲大全| 国产精品合集一区二区| 午夜影院免费看| 成人午夜无人区一区二区| 国产不卡精品一区二区三区| www.成人.com| 国产高清在线观看| 国内精品一区视频| 亚洲久草视频| 97视频在线| 18加网站在线| www.蜜桃av| 国产黄色在线播放| 欧美日韩在线精品成人综合网| 国产精品四虎| 激情在线视频播放| 91激情在线| 国产精品冒白浆免费视频 | 国产91久久久久| 麻豆av在线| 天天操夜夜添| 99在线免费视频| 精品一区二区观看| 国产污污在线观看| 日本中文字幕高清视频| 高潮白浆视频| 九九在线观看免费视频| 日韩精品免费一区二区| 精品极品三级久久久久| 国产黄色免费网站| 国产免费黄视频在线观看| 四虎国产精品永久| 亚洲午夜久久久久中文字幕| 中文资源在线官网| 精灵使的剑舞无删减版在线观看| 国产国产国产国产国产国产 | 91亚洲精选| 国产福利在线免费观看| 中文字幕高清av| 国产视频三级在线观看播放| 国产女王在线**视频 | 久久久久久久久免费视频| 天堂√中文在线| а√最新版地址在线天堂| 亚洲色婷婷综合开心网| www.91在线播放| 免费看的毛片| 午夜不卡视频| 国产黄色一级片| 亚洲精品一区中文字幕电影| xxxx视频在线| 天天操夜夜摸| 国产www在线观看| av中文天堂在线| www在线观看播放免费视频日本| av资源网站在线观看| 九九热精品在线视频| 中文字幕第一页av| a√在线视频| 国产专区在线| 中文岛国精品亚洲一区| 久久久久久久美女| 国产精品麻豆一区二区三区| 在线观看免费黄色| 亚洲永久免费网站| 午夜视频在线看| 香蕉视频在线观看网站| 九九视频在线播放| 国产xxx在线| 青青草观看免费视频在线| 国产一级二级在线| 青草青在线视频| 国产福利视频在线观看| 久久精品最新免费国产成人| 91中文字幕网| 国产视频中文字幕| 国产男女无套在线播放|