Load... 注册 | 登陆

asp+XMLHTTP组件做采集常用函数

 

ASP/Visual Basic代码
  1. '==================================================   
  2. '函数名:GetHttpPage   
  3. '作 用:获取网页源码   
  4. '参 数:HttpUrl ------网页地址   
  5. '==================================================   
  6. Function GetHttpPage(HttpUrl)   
  7. If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$" Then  
  8. GetHttpPage="$False$"  
  9. Exit Function  
  10. End If  
  11. Dim Http   
  12. Set Http=server.createobject("MSXML2.XMLHTTP")   
  13. Http.open "GET",HttpUrl,False  
  14. Http.Send()   
  15. If Http.Readystate<>4 then   
  16. Set Http=Nothing    
  17. GetHttpPage="$False$"  
  18. Exit function   
  19. End if   
  20. GetHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")   
  21. Set Http=Nothing  
  22. If Err.number<>0 then   
  23. Err.Clear   
  24. End If  
  25. End Function  
  26.   
  27. '==================================================   
  28. '函数名:BytesToBstr   
  29. '作 用:将获取的源码转换为中文   
  30. '参 数:Body ------要转换的变量   
  31. '参 数:Cset ------要转换的类型   
  32. '==================================================   
  33. Function BytesToBstr(Body,Cset)   
  34. Dim Objstream   
  35. Set Objstream = Server.CreateObject("adodb.stream")   
  36. objstream.Type = 1   
  37. objstream.Mode =3   
  38. objstream.Open   
  39. objstream.Write body   
  40. objstream.Position = 0   
  41. objstream.Type = 2   
  42. objstream.Charset = Cset   
  43. BytesToBstr = objstream.ReadText    
  44. objstream.Close   
  45. set objstream = nothing   
  46. End Function  
  47.   
  48. '==================================================   
  49. '函数名:PostHttpPage   
  50. '作 用:登录   
  51. '==================================================   
  52. Function PostHttpPage(RefererUrl,PostUrl,PostData)    
  53. Dim xmlHttp    
  54. Dim RetStr    
  55. Set xmlHttp = CreateObject("Msxml2.XMLHTTP")    
  56. xmlHttp.Open "POST", PostUrl, False  
  57. XmlHTTP.setRequestHeader "Content-Length",Len(PostData)    
  58. xmlHttp.setRequestHeader "Content-Type""application/x-www-form-urlencoded"  
  59. xmlHttp.setRequestHeader "Referer", RefererUrl   
  60. xmlHttp.Send PostData    
  61. If Err.Number <> 0 Then    
  62. Set xmlHttp=Nothing  
  63. PostHttpPage = "$False$"  
  64. Exit Function  
  65. End If  
  66. PostHttpPage=bytesToBSTR(xmlHttp.responseBody,"GB2312")   
  67. Set xmlHttp = nothing   
  68. End Function    
  69.   
  70. '==================================================   
  71. '函数名:UrlEncoding   
  72. '作 用:转换编码   
  73. '==================================================   
  74. Function UrlEncoding(DataStr)   
  75. Dim StrReturn,Si,ThisChr,InnerCode,Hight8,Low8   
  76. StrReturn = ""  
  77. For Si = 1 To Len(DataStr)   
  78. ThisChr = Mid(DataStr,Si,1)   
  79. If Abs(Asc(ThisChr)) < &HFF Then  
  80. StrReturn = StrReturn & ThisChr   
  81. Else  
  82. InnerCode = Asc(ThisChr)   
  83. If InnerCode < 0 Then  
  84. InnerCode = InnerCode + &H10000   
  85. End If  
  86. Hight8 = (InnerCode And &HFF00)\ &HFF   
  87. Low8 = InnerCode And &HFF   
  88. StrReturn = StrReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)   
  89. End If  
  90. Next  
  91. UrlEncoding = StrReturn   
  92. End Function  
  93.   
  94. '==================================================   
  95. '函数名:GetBody   
  96. '作 用:截取字符串   
  97. '参 数:ConStr ------将要截取的字符串   
  98. '参 数:StartStr ------开始字符串   
  99. '参 数:OverStr ------结束字符串   
  100. '参 数:IncluL ------是否包含StartStr   
  101. '参 数:IncluR ------是否包含OverStr   
  102. '==================================================   
  103. Function GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)   
  104. If ConStr="$False$" or ConStr="" or IsNull(ConStr)=True Or StartStr="" or IsNull(StartStr)=True Or OverStr="" or IsNull(OverStr)=True Then  
  105. GetBody="$False$"  
  106. Exit Function  
  107. End If  
  108. Dim ConStrTemp   
  109. Dim Start,Over   
  110. ConStrTemp=Lcase(ConStr)   
  111. StartStr=Lcase(StartStr)   
  112. OverStr=Lcase(OverStr)   
  113. Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)   
  114. If Start<=0 then   
  115. GetBody="$False$"  
  116. Exit Function  
  117. Else  
  118. If IncluL=False Then  
  119. Start=Start+LenB(StartStr)   
  120. End If  
  121. End If  
  122. Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)   
  123. If Over<=0 Or Over<=Start then   
  124. GetBody="$False$"  
  125. Exit Function  
  126. Else  
  127. If IncluR=True Then  
  128. Over=Over+LenB(OverStr)   
  129. End If  
  130. End If  
  131. GetBody=MidB(ConStr,Start,Over-Start)   
  132. End Function  
  133.   
  134. '==================================================   
  135. '函数名:GetArray   
  136. '作 用:提取链接地址,以$Array$分隔   
  137. '参 数:ConStr ------提取地址的原字符   
  138. '参 数:StartStr ------开始字符串   
  139. '参 数:OverStr ------结束字符串   
  140. '参 数:IncluL ------是否包含StartStr   
  141. '参 数:IncluR ------是否包含OverStr   
  142. '==================================================   
  143. Function GetArray(Byval ConStr,StartStr,OverStr,IncluL,IncluR)   
  144. If ConStr="$False$" or ConStr="" Or IsNull(ConStr)=True or StartStr="" Or OverStr="" or IsNull(StartStr)=True Or IsNull(OverStr)=True Then  
  145. GetArray="$False$"  
  146. Exit Function  
  147. End If  
  148. Dim TempStr,TempStr2,objRegExp,Matches,Match   
  149. TempStr=""  
  150. Set objRegExp = New Regexp    
  151. objRegExp.IgnoreCase = True    
  152. objRegExp.Global = True  
  153. objRegExp.Pattern = "("&StartStr").+?("&OverStr")"  
  154. Set Matches =objRegExp.Execute(ConStr)    
  155. For Each Match in Matches   
  156. TempStr=TempStr & "$Array$" & Match.Value   
  157. Next    
  158. Set Matches=nothing   
  159.   
  160. If TempStr="" Then  
  161. GetArray="$False$"  
  162. Exit Function  
  163. End If  
  164. TempStr=Right(TempStr,Len(TempStr)-7)   
  165. If IncluL=False then   
  166. objRegExp.Pattern =StartStr   
  167. TempStr=objRegExp.Replace(TempStr,"")   
  168. End if   
  169. If IncluR=False then   
  170. objRegExp.Pattern =OverStr   
  171. TempStr=objRegExp.Replace(TempStr,"")   
  172. End if   
  173. Set objRegExp=nothing   
  174.   
  175. TempStr=Replace(TempStr,"""","")   
  176. TempStr=Replace(TempStr,"'","")   
  177. TempStr=Replace(TempStr," ","")   
  178. If TempStr="" then   
  179. GetArray="$False$"  
  180. Else  
  181. GetArray=TempStr   
  182. End if   
  183. End Function  
  184.   
  185. '==================================================   
  186. '函数名:DefiniteUrl   
  187. '作 用:将相对地址转换为绝对地址   
  188. '参 数:PrimitiveUrl ------要转换的相对地址   
  189. '参 数:ConsultUrl ------当前网页地址   
  190. '==================================================   
  191. Function DefiniteUrl(Byval PrimitiveUrl,Byval ConsultUrl)   
  192. Dim ConTemp,PriTemp,Pi,Ci,PriArray,ConArray   
  193. If PrimitiveUrl="" or ConsultUrl="" or PrimitiveUrl="$False$" or ConsultUrl="$False$" Then  
  194. DefiniteUrl="$False$"  
  195. Exit Function  
  196. End If  
  197. If Left(Lcase(ConsultUrl),7)<>"http://" Then  
  198. ConsultUrl= "http://" & ConsultUrl   
  199. End If  
  200. ConsultUrl=Replace(ConsultUrl,"\","/")  
  201. ConsultUrl=Replace(ConsultUrl,"://",":\\")  
  202. PrimitiveUrl=Replace(PrimitiveUrl,"\","/")  
  203.  
  204. If Right(ConsultUrl,1)<>"/" Then  
  205. If Instr(ConsultUrl,"/")>0 Then  
  206. If Instr(Right(ConsultUrl,Len(ConsultUrl)-InstrRev(ConsultUrl,"/")),".")>0 then   
  207. Else  
  208. ConsultUrl=ConsultUrl & "/"  
  209. End If  
  210. Else  
  211. ConsultUrl=ConsultUrl & "/"  
  212. End If  
  213. End If  
  214. ConArray=Split(ConsultUrl,"/")  
  215.  
  216. If Left(LCase(PrimitiveUrl),7) = "http://" then  
  217. DefiniteUrl=Replace(PrimitiveUrl,"://",":\\")  
  218. ElseIf Left(PrimitiveUrl,1) = "/" Then  
  219. DefiniteUrl=ConArray(0) & PrimitiveUrl  
  220. ElseIf Left(PrimitiveUrl,2)="./" Then  
  221. PrimitiveUrl=Right(PrimitiveUrl,Len(PrimitiveUrl)-2)  
  222. If Right(ConsultUrl,1)="/" Then   
  223. DefiniteUrl=ConsultUrl & PrimitiveUrl  
  224. Else  
  225. DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & PrimitiveUrl  
  226. End If  
  227. ElseIf Left(PrimitiveUrl,3)="../" then  
  228. Do While Left(PrimitiveUrl,3)="../"  
  229. PrimitiveUrl=Right(PrimitiveUrl,Len(PrimitiveUrl)-3)  
  230. Pi=Pi+1  
  231. Loop   
  232. For Ci=0 to (Ubound(ConArray)-1-Pi)  
  233. If DefiniteUrl<>"" Then  
  234. DefiniteUrl=DefiniteUrl & "/" & ConArray(Ci)  
  235. Else  
  236. DefiniteUrl=ConArray(Ci)  
  237. End If  
  238. Next  
  239. DefiniteUrl=DefiniteUrl & "/" & PrimitiveUrl  
  240. Else  
  241. If Instr(PrimitiveUrl,"/")>0 Then  
  242. PriArray=Split(PrimitiveUrl,"/")  
  243. If Instr(PriArray(0),".")>0 Then  
  244. If Right(PrimitiveUrl,1)="/" Then  
  245. DefiniteUrl="http:\\" & PrimitiveUrl  
  246. Else  
  247. If Instr(PriArray(Ubound(PriArray)-1),".")>0 Then   
  248. DefiniteUrl="http:\\" & PrimitiveUrl  
  249. Else  
  250. DefiniteUrl="http:\\" & PrimitiveUrl & "/"  
  251. End If  
  252. End If   
  253. Else  
  254. If Right(ConsultUrl,1)="/" Then   
  255. DefiniteUrl=ConsultUrl & PrimitiveUrl  
  256. Else  
  257. DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & PrimitiveUrl  
  258. End If  
  259. End If  
  260. Else  
  261. If Instr(PrimitiveUrl,".")>0 Then  
  262. If Right(ConsultUrl,1)="/" Then  
  263. 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  
  264. DefiniteUrl="http:\\" & PrimitiveUrl & "/"  
  265. Else  
  266. DefiniteUrl=ConsultUrl & PrimitiveUrl  
  267. End If  
  268. Else  
  269. 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  
  270. DefiniteUrl="http:\\" & PrimitiveUrl & "/"  
  271. Else  
  272. DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrl  
  273. End If  
  274. End If  
  275. Else  
  276. If Right(ConsultUrl,1)="/" Then  
  277. DefiniteUrl=ConsultUrl & PrimitiveUrl & "/"  
  278. Else  
  279. DefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrl & "/"  
  280. End If   
  281. End If  
  282. End If  
  283. End If  
  284. If Left(DefiniteUrl,1)="/" then  
  285. DefiniteUrl=Right(DefiniteUrl,Len(DefiniteUrl)-1)  
  286. End if  
  287. If DefiniteUrl<>"" Then  
  288. DefiniteUrl=Replace(DefiniteUrl,"//","/")  
  289. DefiniteUrl=Replace(DefiniteUrl,":\\","://")  
  290. Else  
  291. DefiniteUrl="$False$"  
  292. End If  
  293. End Function  
  294.  
  295. '==================================================  
  296. '函数名:ReplaceSaveRemoteFile  
  297. '作 用:替换、保存远程图片  
  298. '参 数:ConStr ------ 要替换的字符串  
  299. '参 数:SaveTf ------ 是否保存文件,False不保存,True保存  
  300. '参 数: TistUrl------ 当前网页地址  
  301. '==================================================  
  302. Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl)  
  303. If ConStr="$False$" or ConStr="" or strInstallDir="" or strChannelDir="" Then  
  304. ReplaceSaveRemoteFile=ConStr  
  305. Exit Function  
  306. End If  
  307. Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2  
  308. Dim Start1,Start2  
  309.  
  310. Set Re = New Regexp   
  311. Re.IgnoreCase = True   
  312. Re.Global = True  
  313. Re.Pattern ="<img.+?[^\>]>"  
  314. Set Matches =Re.Execute(ConStr)   
  315. For Each Match in Matches  
  316. If TempStr<>"" then   
  317. TempStr=TempStr & "$Array$" & Match.Value  
  318. Else  
  319. TempStr=Match.Value  
  320. End if  
  321. Next  
  322. If TempStr<>"" Then  
  323. TempArray=Split(TempStr,"$Array$")  
  324. TempStr=""  
  325. For Tempi=0 To Ubound(TempArray)  
  326. Re.Pattern ="src\s*=\s*.+?\.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)"  
  327. Set Matches =Re.Execute(TempArray(Tempi))   
  328. For Each Match in Matches  
  329. If TempStr<>"" then   
  330. TempStr=TempStr & "$Array$" & Match.Value  
  331. Else  
  332. TempStr=Match.Value  
  333. End if  
  334. Next  
  335. Next  
  336. End if  
  337. If TempStr<>"" Then  
  338. Re.Pattern ="src\s*=\s*"  
  339. TempStr=Re.Replace(TempStr,"")  
  340. End If  
  341. Set Matches=nothing  
  342. Set Re=nothing  
  343. If TempStr="" or IsNull(TempStr)=True Then  
  344. ReplaceSaveRemoteFile=ConStr  
  345. Exit function  
  346. End if  
  347. TempStr=Replace(TempStr,"""","")  
  348. TempStr=Replace(TempStr,"'","")   
  349. TempStr=Replace(TempStr," ","")  
  350.  
  351. Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path  
  352. DtNow=Now()  
  353. If SaveTf=True then  
  354. SavePath=strInstallDir & strChannelDir & "/UploadFiles/" & year(DtNow) & right("0" & month(DtNow),2) & "/"  
  355. Arr_Path=Split(SavePath,"/")  
  356. PathTemp=""  
  357. For Tempi=0 To Ubound(Arr_Path)  
  358. If Tempi=0 Then  
  359. PathTemp=Arr_Path(0) & "/"  
  360. ElseIf Tempi=Ubound(Arr_Path) Then  
  361. Exit For  
  362. Else  
  363. PathTemp=PathTemp & Arr_Path(Tempi) & "/"  
  364. End If  
  365. If CheckDir(PathTemp)=False Then  
  366. If MakeNewsDir(PathTemp)=False Then  
  367. SaveTf=False  
  368. Exit For  
  369. End If  
  370. End If  
  371. Next  
  372. End If  
  373.  
  374. '去掉重复图片开始  
  375. TempArray=Split(TempStr,"$Array$")  
  376. TempStr=""  
  377. For Tempi=0 To Ubound(TempArray)  
  378. If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1 Then  
  379. TempStr=TempStr & "$Array$" & TempArray(Tempi)  
  380. End If  
  381. Next  
  382. TempStr=Right(TempStr,Len(TempStr)-7)  
  383. TempArray=Split(TempStr,"$Array$")  
  384. '去掉重复图片结束  
  385.  
  386. '转换相对图片地址开始  
  387. TempStr=""  
  388. For Tempi=0 To Ubound(TempArray)  
  389. TempStr=TempStr & "$Array$" & DefiniteUrl(TempArray(Tempi),TistUrl)  
  390. Next  
  391. TempStr=Right(TempStr,Len(TempStr)-7)  
  392. TempStr=Replace(TempStr,Chr(0),"")  
  393. TempArray2=Split(TempStr,"$Array$")  
  394. TempStr=""  
  395. '转换相对图片地址结束  
  396.  
  397. '图片替换/保存  
  398. Set Re = New Regexp  
  399. Re.IgnoreCase = True   
  400. Re.Global = True  
  401.  
  402. For Tempi=0 To Ubound(TempArray2)  
  403. RemoteFileUrl=TempArray2(Tempi)  
  404. If RemoteFileUrl<>"$False$" And SaveTf=True Then'保存图片  
  405. ArrSaveFileName = Split(RemoteFileurl,".")  
  406.    strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件类型  
  407. 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  
  408. UploadFiles=""  
  409. ReplaceSaveRemoteFile=ConStr  
  410. Exit Function  
  411. End If  
  412.  
  413. Randomize  
  414. RanNum=Int(900*Rnd)+100  
  415.    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  
  416. Re.Pattern =TempArray(Tempi)  
  417.    If SaveRemoteFile(SavePath & strFileName,RemoteFileUrl)=True Then  
  418. PathTemp=Replace(SavePath &strFileName,strInstallDir & strChannelDir & "/","[InstallDir_ChannelDir]")  
  419. ConStr=Re.Replace(ConStr,PathTemp)  
  420. Re.Pattern=strInstallDir & strChannelDir & "/"  
  421. UploadFiles=UploadFiles & "|" & Re.Replace(SavePath &strFileName,"")  
  422. Else  
  423. PathTemp=RemoteFileUrl  
  424. ConStr=Re.Replace(ConStr,PathTemp)  
  425. 'UploadFiles=UploadFiles & "|" & RemoteFileUrl  
  426. End If  
  427. ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片  
  428. Re.Pattern =TempArray(Tempi)  
  429. ConStr=Re.Replace(ConStr,RemoteFileUrl)  
  430. UploadFiles=UploadFiles & "|" & RemoteFileUrl  
  431. End If  
  432. Next   
  433. Set Re=nothing  
  434. If UploadFiles<>"" Then  
  435. UploadFiles=Right(UploadFiles,Len(UploadFiles)-1)  
  436. End If  
  437. ReplaceSaveRemoteFile=ConStr  
  438. End function  
  439.  
  440. '==================================================  
  441. '过程名:SaveRemoteFile  
  442. '作 用:保存远程的文件到本地  
  443. '参 数:LocalFileName ------ 本地文件名  
  444. '参 数:RemoteFileUrl ------ 远程文件URL  
  445. '==================================================  
  446. Function SaveRemoteFile(LocalFileName,RemoteFileUrl)  
  447. On error resume next  
  448. SaveRemoteFile=True  
  449.    dim Ads,Retrieval,GetRemoteData  
  450.    Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")  
  451.    With Retrieval  
  452.      .Open "Get", RemoteFileUrl, False, "", ""  
  453.      .Send  
  454. If .Readystate<>4 then  
  455. SaveRemoteFile=False  
  456. Exit Function  
  457. End If  
  458.      GetRemoteData = .ResponseBody  
  459.    End With  
  460.    Set Retrieval = Nothing  
  461.    Set Ads = Server.CreateObject("Adodb.Stream")  
  462.    With Ads  
  463.      .Type = 1  
  464.      .Open  
  465.      .Write GetRemoteData  
  466.      .SaveToFile server.MapPath(LocalFileName),2  
  467.      .Cancel()  
  468.      .Close()  
  469.    End With  
  470.    Set Ads=nothing  
  471. end Function  
  472.  
  473. '==================================================  
  474. '函数名:FpHtmlEnCode  
  475. '作 用:标题过滤  
  476. '参 数:fString ------字符串  
  477. '==================================================  
  478. Function FpHtmlEnCode(fString)  
  479. If IsNull(fString)=False or fString<>"" or fString<>"$False$" Then  
  480. fString=nohtml(fString)  
  481. fString=FilterJS(fString)  
  482. fString = Replace(fString, CHR(9), "")  
  483. fString = Replace(fString, CHR(34), "")  
  484. fString = Replace(fString, CHR(39), "")  
  485. fString = Replace(fString, CHR(13), "")  
  486. fString = Replace(fString, CHR(10), " ")  
  487. fString=Trim(fString)  
  488. fString=dvhtmlencode(fString)  
  489. FpHtmlEnCode=fString  
  490. Else  
  491. FpHtmlEnCode="$False$"  
  492. End If  
  493. End Function  
  494.  
  495. '==================================================  
  496. '函数名:GetPaing  
  497. '作 用:获取分页  
  498. '==================================================  
  499. Function GetPaing(Byval ConStr,StartStr,OverStr,IncluL,IncluR)  
  500. If ConStr="$False$" or ConStr="" Or StartStr="" Or OverStr="" or IsNull(ConStr)=True or IsNull(StartStr)=True Or IsNull(OverStr)=True Then  
  501. GetPaing="$False$"  
  502. Exit Function  
  503. End If  
  504.  
  505. Dim Start,Over,ConTemp,Erri  
  506. ConStr=LCase(ConStr)  
  507. StartStr=LCase(StartStr)  
  508. OverStr=LCase(OverStr)  
  509. Over=InstrB(1,ConStr,OverStr,vbBinaryCompare)  
  510. If Over<=0 Then  
  511. GetPaing="$False$"  
  512. Exit Function  
  513. Else  
  514. Over=Over+Lenb(OverStr)  
  515. End If  
  516.  
  517. Start=Over-5  
  518. If Start<=0 Then  
  519. GetPaing="$False$"  
  520. Exit Function  
  521. End If  
  522.  
  523. ConTemp=MidB(ConStr,Start,Over-Start)  
  524. Do While InstrB(1,ConTemp,StartStr,vbBinaryCompare)<=0  
  525. Erri=Erri+1  
  526. If Erri>50 then  
  527. GetPaing="$False$"  
  528. Exit Function  
  529. End If   
  530. Start=Start-5  
  531. if Start<=0 then  
  532. GetPaing="$False$"  
  533. Exit Do  
  534. Exit Function  
  535. Else  
  536. ConTemp=MidB(ConStr,Start,Over-Start)  
  537. End If  
  538. Loop  
  539.  
  540. Start=InstrB(1,ConTemp,StartStr,vbBinaryCompare)  
  541. If IncluL=False Then  
  542. Start=Start+LenB(StartStr)  
  543. End If  
  544. Over=InstrB(Start,ConTemp,OverStr,vbBinaryCompare)  
  545. If IncluR=True Then  
  546. Over=Over+LenB(OverStr)  
  547. End If  
  548. If Start>=Over then  
  549. GetPaing="$False$"  
  550. Exit Function  
  551. End If  
  552. GetPaing=MidB(ConTemp,Start,Over-Start)  
  553. GetPaing=Trim(GetPaing)  
  554. GetPaing=Replace(GetPaing," ","")  
  555. GetPaing=Replace(GetPaing,",","")  
  556. GetPaing=Replace(GetPaing,"'","")   
  557. GetPaing=Replace(GetPaing,"""","")  
  558. GetPaing=Replace(GetPaing,">","")  
  559. GetPaing=Replace(GetPaing,"<","")  
  560. End Function  
  561.  
  562. '==================================================  
  563. '函数名:ScriptHtml  
  564. '作 用:过滤html标记  
  565. '参 数:ConStr ------ 要过滤的字符串  
  566. '==================================================  
  567. Function ScriptHtml(Byval ConStr,TagName,FType)  
  568. Dim Re  
  569. Set Re=new RegExp  
  570. Re.IgnoreCase =true  
  571. Re.Global=True  
  572. Select Case FType  
  573. Case 1  
  574. Re.Pattern="<" & TagName & "([^>])*>"  
  575. ConStr=Re.Replace(ConStr,"")  
  576. Case 2  
  577. Re.Pattern="<" & TagName & "([^>])*>.*?</" & TagName & "([^>])*>"  
  578. ConStr=Re.Replace(ConStr,"")  
  579. Case 3  
  580. Re.Pattern="<" & TagName & "([^>])*>"  
  581. ConStr=Re.Replace(ConStr,"")  
  582. Re.Pattern="</" & TagName & "([^>])*>"  
  583. ConStr=Re.Replace(ConStr,"")  
  584. End Select  
  585. ScriptHtml=ConStr  
  586. Set Re=Nothing  
  587. End Function  
  588.  
  589. Function CheckDir(byval FolderPath)  
  590.    dim fso  
  591.    Set fso = Server.CreateObject("Scripting.FileSystemObject")  
  592.    If fso.FolderExists(Server.MapPath(folderpath)) then  
  593.    '存在  
  594.      CheckDir = True  
  595.    Else  
  596.    '不存在  
  597.      CheckDir = False  
  598.    End if  
  599.    Set fso = nothing  
  600. End Function  
  601. Function MakeNewsDir(byval foldername)  
  602.    dim fso  
  603.    Set fso = Server.CreateObject("Scripting.FileSystemObject")  
  604. fso.CreateFolder(Server.MapPath(foldername))  
  605. If fso.FolderExists(Server.MapPath(foldername)) Then  
  606. MakeNewsDir = True  
  607. Else  
  608. MakeNewsDir = False  
  609. End If  
  610.    Set fso = nothing  
  611. End Function  
  612.  
  613. '**************************************************  
  614. '函数名:IsObjInstalled  
  615. '作 用:检查组件是否已经安装  
  616. '参 数:strClassString ----组件名  
  617. '返回值:True ----已经安装  
  618. ' False ----没有安装  
  619. '**************************************************  
  620. Function IsObjInstalled(strClassString)  
  621.    On Error Resume Next  
  622.    IsObjInstalled = False  
  623.    Err = 0  
  624.    Dim xTestObj  
  625.    Set xTestObj = Server.CreateObject(strClassString)  
  626.    If 0 = Err Then IsObjInstalled = True  
  627.    Set xTestObj = Nothing  
  628.    Err = 0  
  629. End Function  
  630.  
  631. '**************************************************  
  632. '过程名:WriteErrMsg  
  633. '作 用:显示错误提示信息  
  634. '参 数:无  
  635. '**************************************************  
  636. sub WriteErrMsg(ErrMsg)  
  637.    dim strErr  
  638.    strErr=strErr & "<html><head><title>错误信息</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf   
  639.    strErr=strErr & "<link href="../admin/Admin_STYLE.CSS" mce_href="admin/Admin_STYLE.CSS" rel='stylesheet' type='text/css'></head><body><br><br>" & vbcrlf   
  640.    strErr=strErr & "<table cellpadding=2 cellspacing=1 border=0 width=400 class='border' align=center>" & vbcrlf   
  641.    strErr=strErr & " <tr align='center' class='title'><td height='22'><strong>错误信息</strong></td></tr>" & vbcrlf   
  642.    strErr=strErr & " <tr class='tdbg'><td height='100' valign='top'><b>产生错误的可能原因:</b>" & ErrMsg &"</td></tr>" & vbcrlf   
  643.    strErr=strErr & " <tr align='center' class='tdbg'><td><a href="javascript:history.go(-1)" mce_href="javascript:history.go(-1)"><< 返回上一页</a></td></tr>" & vbcrlf   
  644.    strErr=strErr & "</table>" & vbcrlf  
  645.    strErr=strErr & "</body></html>" & vbcrlf  
  646.    response.write strErr  
  647. end sub  
  648.  
  649. '**************************************************  
  650. '过程名:WriteSucced  
  651. '作 用:显示成功提示信息  
  652. '参 数:无  
  653. '**************************************************  
  654. sub WriteSucced(ErrMsg)  
  655.    dim strErr  
  656.    strErr=strErr & "<html><head><title>成功信息</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf   
  657.    strErr=strErr & "<link href="../admin/Admin_STYLE.CSS" mce_href="admin/Admin_STYLE.CSS" rel='stylesheet' type='text/css'></head><body><br><br>" & vbcrlf   
  658.    strErr=strErr & "<table cellpadding=2 cellspacing=1 border=0 width=400 class='border' align=center>" & vbcrlf   
  659.    strErr=strErr & " <tr align='center' class='title'><td height='22'><strong>恭喜你!</strong></td></tr>" & vbcrlf   
  660.    strErr=strErr & " <tr class='tdbg'><td height='100' valign='top' align='center'>" & ErrMsg &"</td></tr>" & vbcrlf   
  661.    'strErr=strErr & " <tr align='center' class='tdbg'><td><a href="javascript:history.go(-1)" mce_href="javascript:history.go(-1)"><< 返回上一页</a></td></tr>" & vbcrlf   
  662.    strErr=strErr & "</table>" & vbcrlf  
  663.    strErr=strErr & "</body></html>" & vbcrlf  
  664.    response.write strErr  
  665. end sub  
  666.  
  667. '**************************************************  
  668. '函数名:ShowPage  
  669. '作 用:显示“上一页 下一页”等信息  
  670. '参 数:sFileName ----链接地址  
  671. ' TotalNumber ----总数量  
  672. ' MaxPerPage ----每页数量  
  673. ' ShowTotal ----是否显示总数量  
  674. ' ShowAllPages ---是否用下拉列表显示所有页面以供跳转。有某些页面不能使用,否则会出现JS错误。  
  675. ' strUnit ----计数单位  
  676. '返回值:“上一页 下一页”等信息的HTML代码  
  677. '**************************************************  
  678. function ShowPage(sFileName,TotalNumber,MaxPerPage,ShowTotal,ShowAllPages,strUnit)  
  679.    dim TotalPage,strTemp,strUrl,i  
  680.  
  681.    if TotalNumber=0 or MaxPerPage=0 or isNull(MaxPerPage) then  
  682.      ShowPage=""  
  683.      exit function  
  684.    end if  
  685.    if totalnumber mod maxperpage=0 then  
  686.    TotalPage= totalnumber \ maxperpage  
  687.    else  
  688.    TotalPage= totalnumber \ maxperpage+1  
  689.    end if  
  690.    if CurrentPage>TotalPage then CurrentPage=TotalPage  
  691.       
  692.    strTemp= "<table align='center'><tr><td>"   
  693.    if ShowTotal=true then    
  694.      strTemp=strTemp & "共 <b>" & totalnumber & "</b> " & strUnit & "  "  
  695.    end if  
  696.    strUrl=JoinChar(sfilename)  
  697.    if CurrentPage<2 then  
  698.    strTemp=strTemp & "首页 上一页 "  
  699.    else  
  700.    strTemp=strTemp & "<a href="" & strUrl & "page=1" mce_href="" & strUrl & "page=1">首页</a> "  
  701.    strTemp=strTemp & "<a href="" & strUrl & "page=" & (CurrentPage-1) & "" mce_href="" & strUrl & "page=" & (CurrentPage-1) & "">上一页</a> "  
  702.    end if  
  703.  
  704.    if CurrentPage>=TotalPage then  
  705.    strTemp=strTemp & "下一页 尾页"  
  706.    else  
  707.    strTemp=strTemp & "<a href="" & strUrl & "page=" & (CurrentPage+1) & "" mce_href="" & strUrl & "page=" & (CurrentPage+1) & "">下一页</a> "  
  708.    strTemp=strTemp & "<a href="" & strUrl & "page=" & TotalPage & "" mce_href="" & strUrl & "page=" & TotalPage & "">尾页</a>"  
  709.    end if  
  710.    strTemp=strTemp & " 页次:<strong><font color=red>" & CurrentPage & "</font>/" & TotalPage & "</strong>页 "  
  711. strTemp=strTemp & " <b>" & maxperpage & "</b>" & strUnit & "/页"  
  712.    if ShowAllPages=True then  
  713.      strTemp=strTemp & "  转到第<input type='text' name='page' size='3' maxlength='5' value='" & CurrentPage & "' onKeyPress=""if (event.keyCode==13) window.location='" & strUrl & "page=" & "'+this.value;""'>页"   
  714.    end if   
  715.    strTemp=strTemp & "</td></tr></table>"  
  716.    ShowPage=strTemp  
  717. end function  
  718.  
  719. '**************************************************  
  720. '函数名:JoinChar  
  721. '作 用:向地址中加入 ? 或 &  
  722. '参 数:strUrl ----网址  
  723. '返回值:加了 ? 或 & 的网址  
  724. '**************************************************  
  725. function JoinChar(strUrl)  
  726.    if strUrl="" then  
  727.      JoinChar=""  
  728.      exit function  
  729.    end if  
  730.    if InStr(strUrl,"?")<len(strUrl) then   
  731.      if InStr(strUrl,"?")>1 then  
  732.        if InStr(strUrl,"")<len(strUrl) then   
  733.          JoinChar=strUrl & ""  
  734.        else  
  735.          JoinChar=strUrl  
  736.        end if  
  737.      else  
  738.        JoinChar=strUrl & "?"  
  739.      end if  
  740.    else  
  741.      JoinChar=strUrl  
  742.    end if  
  743. end function  
  744.  
  745. '**************************************************  
  746. '函数名:CreateKeyWord  
  747. '作 用:由给定的字符串生成关键字  
  748. '参 数:Constr---要生成关键字的原字符串  
  749. '返回值:生成的关键字  
  750. '**************************************************  
  751. Function CreateKeyWord(byval Constr)  
  752. If Constr="" or IsNull(Constr)=True or Constr="$False$" Then  
  753. CreateKeyWord="$False$"  
  754. Exit Function  
  755. End If  
  756. Constr=Replace(Constr,CHR(32),"")  
  757. Constr=Replace(Constr,CHR(9),"")  
  758. Constr=Replace(Constr," ","")  
  759. Constr=Replace(Constr," ","")  
  760. Constr=Replace(Constr,"(","")  
  761. Constr=Replace(Constr,")","")  
  762. Constr=Replace(Constr,"<","")  
  763. Constr=Replace(Constr,">","")  
  764. Dim i,ConstrTemp  
  765. For i=1 To Len(Constr)  
  766. ConstrTemp=ConstrTemp & "|" & Mid(Constr,i,2)  
  767. Next  
  768. If Len(ConstrTemp)<254 Then  
  769. ConstrTemp=ConstrTemp & "|"  
  770. Else  
  771. ConstrTemp=Left(ConstrTemp,254) & "|"  
  772. End If  
  773. CreateKeyWord=ConstrTemp  
  774. End Function  
  775.  
  776. Function CheckUrl(strUrl)  
  777. Dim Re  
  778. Set Re=new RegExp  
  779. Re.IgnoreCase =true  
  780. Re.Global=True  
  781. Re.Pattern="http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?"  
  782. If Re.test(strUrl)=True Then  
  783. CheckUrl=strUrl  
  784. Else  
  785. CheckUrl="$False$"   
  786. End If  
  787. Set Rs=Nothing  
  788. End Function  

« 上一篇 | 下一篇 »

Leave a Comment

评论内容 (必填):