Function.asp
上传用户:jisenq
上传日期:2014-06-29
资源大小:7216k
文件大小:10k
源码类别:

数据库编程

开发平台:

ASP/ASPX

  1. <%
  2. Function GetPageContent(f_Url) 
  3. Dim f_HTTP_Obj
  4. 'On Error Resume Next
  5. Set f_HTTP_Obj = Server.CreateObject(G_FS_XMLHTTP) 
  6. With f_HTTP_Obj 
  7. .Open "Get", f_Url, False, "", "" 
  8. .Send 
  9. End With 
  10. if f_HTTP_Obj.Readystate <> 4 then
  11. Set f_HTTP_Obj = Nothing
  12. GetPageContent = False
  13. Exit Function
  14. end if
  15. GetPageContent = ResponseStrToStr(f_HTTP_Obj.ResponseBody)
  16. Set f_HTTP_Obj = Nothing
  17. End Function
  18. Function ResponseStrToStr(f_Body_Str)
  19. Dim ADOStreamObj
  20. Set ADOStreamObj = Server.CreateObject("Adodb.Stream")
  21. ADOStreamObj.Type = 1
  22. ADOStreamObj.Mode = 3
  23. ADOStreamObj.Open
  24. ADOStreamObj.Write f_Body_Str
  25. ADOStreamObj.Position = 0
  26. ADOStreamObj.Type = 2
  27. ADOStreamObj.Charset = "GB2312"
  28. ResponseStrToStr = ADOStreamObj.ReadText 
  29. ADOStreamObj.Close
  30. Set ADOStreamObj = Nothing
  31. End Function
  32. Function GetContent(Str,StartStr,LastStr,Flag)
  33. On Error Resume next
  34. if Instr(LCase(Str),LCase(StartStr)) > 0 then
  35. Dim regEx,SearchStr,Matches,Matche
  36. Str = Replace(Replace(Str,Chr(13),""),Chr(10),"")
  37. StartStr = Replace(StartStr,"[变量]",".*")
  38. LastStr = Replace(LastStr,"[变量]",".*")
  39. SearchStr = StartStr & ".*" & LastStr
  40. Set regEx = New RegExp
  41. regEx.IgnoreCase = True
  42. regEx.Global=True
  43. regEx.Pattern = SearchStr
  44. Set Matches = regEx.Execute(str)
  45. set Matche = Matches(0)
  46. Select Case Flag
  47. Case 0 '不包括首尾特征字符
  48. GetContent = Matche
  49. regEx.Pattern = StartStr
  50. GetContent = regEx.Replace(GetContent,"")
  51. regEx.Pattern = LastStr & ".*|n"
  52. GetContent = regEx.Replace(GetContent,"")
  53. Case 1 '包括首尾特征字符
  54. GetContent = Matche
  55. Case 2 '取开始字符后面的所有内容
  56. GetContent = Matche
  57. regEx.Pattern = StartStr
  58. GetContent = regEx.Replace(GetContent,"")
  59. Case else
  60. GetContent = ""
  61. End Select
  62. else
  63. GetContent = ""
  64. end if
  65. if Err then 
  66. Err.clear
  67. GetContent = ""
  68. End If
  69. End Function
  70. Function GetOtherContent(Str,StartStr,LastStr)
  71. On Error Resume Next
  72. Dim regEx,SearchStr,Matches,Matche
  73. Str = Replace(Replace(Str,Chr(13),""),Chr(10),"")
  74. StartStr = Replace(Replace(Replace(StartStr,"[变量]","(.*)"),Chr(13),""),Chr(10),"")
  75. LastStr = Replace(Replace(Replace(LastStr,"[变量]","(.*)"),Chr(13),""),Chr(10),"")
  76. SearchStr = StartStr & ".*" & LastStr
  77. Set regEx = New RegExp
  78. regEx.IgnoreCase = True
  79. regEx.Global=True
  80. regEx.Pattern = SearchStr
  81. Set Matches = regEx.Execute(str)
  82. For Each Matche In  Matches
  83. If Matche<>"" Then 
  84. GetOtherContent = Matche
  85. regEx.Pattern = StartStr
  86. GetOtherContent = regEx.Replace(GetOtherContent,"")
  87. regEx.Pattern = LastStr & ".*|n"
  88. GetOtherContent = regEx.Replace(GetOtherContent,"")
  89. Else
  90. GetOtherContent = ""
  91. End If 
  92. If Err Then 
  93. Err.clear
  94. GetOtherContent = "" 
  95. End If
  96. Exit For
  97. Next
  98. End Function
  99. Function FormatUrl(NewsLinkStr,ObjURL)
  100. '///////
  101. '测试值
  102. 'NewsLinkStr = "../aaa.htm"
  103. 'CollectObjURL = "http://www.baidu.com/bbb/ccc/"
  104. 'SiteUrl = "http://www.baidu.com"
  105. '/////
  106. Dim URLSearchLoc
  107. 'NewsLinkStr = LCase(NewsLinkStr)
  108. if Left(LCase(NewsLinkStr),7) <> "http://" then
  109. Dim CheckURLStr,TempCollectObjURL,CheckObjURL
  110. NewsLinkStr = Replace(Replace(Replace(NewsLinkStr,"'",""),"""","")," ","")
  111. TempCollectObjURL = Left(ObjURL,InStrRev(ObjURL,"/"))
  112. CheckObjURL = NewsLinkStr
  113. CheckURLStr = Left(NewsLinkStr,3)
  114. if Left(NewsLinkStr,1) = "/" then
  115. URLSearchLoc = InStr(ObjURL,"//") + 2
  116. FormatUrl = Left(ObjURL,InStr(URLSearchLoc,ObjURL,"/") - 1)
  117. FormatUrl = FormatUrl & NewsLinkStr
  118. elseif CheckURLStr = "../" then
  119. do while Not CheckURLStr <> "../"
  120. CheckObjURL = Mid(CheckObjURL,4)
  121. if Right(TempCollectObjURL,1) = "/" then TempCollectObjURL = Left(TempCollectObjURL,Len(TempCollectObjURL) - 1)
  122. TempCollectObjURL = Left(TempCollectObjURL,InStrRev(TempCollectObjURL,"/"))
  123. CheckURLStr = Left(CheckObjURL,3)
  124. Loop
  125. FormatUrl = TempCollectObjURL & CheckObjURL
  126. else
  127. FormatUrl = TempCollectObjURL & NewsLinkStr
  128. end if
  129. else
  130. FormatUrl = NewsLinkStr
  131. end If
  132. End Function
  133. Function ReplaceIMGRemoteUrl(NewsContent,SaveFilePath,FunDoMain,DummyPath,NewsLinkStr,SaveRemotePic)  'ReplaceRemoteUrl变形
  134. Dim re,RemoteFile,RemoteFileurl,SaveFileName,FileName,FileExtName,SaveImagePath,ReplaceFileUrl,TempFileUrl
  135. Dim SaveIMGFileName,SourceFileUrl
  136. Set re = New RegExp
  137. re.IgnoreCase = True
  138. re.Global=True
  139. 're.Pattern = "((http|https|ftp|rtsp|mms):(//|\\){1}((w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(S*/)((S)+[.]{1}(gif|jpg|png|bmp|swf)))"
  140. re.Pattern = "(srcS+.{1}(gif|jpg|png|bmp|swf)(""|')?)"
  141. Set RemoteFile = re.Execute(NewsContent)
  142. Set re = Nothing
  143. For Each RemoteFileurl in RemoteFile
  144. ReplaceFileUrl = Replace(Replace(Replace(RemoteFileurl,"=",""),"'",""),"""","")
  145. SourceFileUrl = RemoteFileurl
  146. TempFileUrl = mid(ReplaceFileUrl,4)
  147. RemoteFileurl = FormatUrl(TempFileUrl,NewsLinkStr)
  148. 'If SaveRemotePic Then
  149. SaveFileName = Mid(RemoteFileurl,InstrRev(RemoteFileurl,"/")+1)
  150. FileExtName = Mid(SaveFileName,InstrRev(SaveFileName,".")+1)
  151. SaveIMGFileName = GetRamCode(18) & "." & FileExtName
  152. Call SaveRemoteFile(DummyPath & SaveFilePath & "/" & SaveIMGFileName,RemoteFileurl)
  153. NewsContent = Replace(NewsContent,SourceFileUrl, "src=""" & FunDoMain & SaveFilePath & "/" & SaveIMGFileName & """")
  154. 'Else
  155. 'NewsContent = Replace(NewsContent,SourceFileUrl, "src=""" & RemoteFileurl &"""")
  156. '不选择远程存图也替换图片地址为绝对地址2005.10.20
  157. 'End If
  158. Next
  159. ReplaceIMGRemoteUrl = NewsContent
  160. End Function
  161. Function ReplaceContentStr(ContentStr)
  162. Dim TempContentStr
  163. TempContentStr = ContentStr
  164. if TextTF then
  165. TempContentStr = LoseHtml(TempContentStr)
  166. else
  167. if IsStyle = True then TempContentStr = LoseStyleTag(TempContentStr)
  168. if IsDiv = True then TempContentStr = LoseDivTag(TempContentStr)
  169. if IsA = True then TempContentStr = LoseATag(TempContentStr)
  170. if IsFont = True then TempContentStr = LoseFontTag(TempContentStr)
  171. if IsSpan = True then TempContentStr = LoseSpanTag(TempContentStr)
  172. if IsObjectTF = True then TempContentStr = LoseObjectTag(TempContentStr)
  173. if IsIFrame = True then TempContentStr = LoseIFrameTag(TempContentStr)
  174. if IsScript = True then TempContentStr = LoseScriptTag(TempContentStr)
  175. if IsClass = True then TempContentStr = LoseClassTag(TempContentStr)
  176. end if
  177. ReplaceContentStr = TempContentStr
  178. End Function
  179. Function LoseClassTag(ContentStr)
  180. Dim ClsTempLoseStr,regEx
  181. ClsTempLoseStr = Cstr(ContentStr)
  182. Set regEx = New RegExp
  183. regEx.Pattern = "(class=){1,}(""|'){0,1}S+(""|'|>|s){0,1}"
  184. regEx.IgnoreCase = True
  185. regEx.Global = True
  186. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  187. LoseClassTag = ClsTempLoseStr
  188. Set regEx = Nothing
  189. End Function
  190. Function LoseScriptTag(ContentStr)
  191. Dim ClsTempLoseStr,regEx
  192. ClsTempLoseStr = Cstr(ContentStr)
  193. Set regEx = New RegExp
  194. regEx.Pattern = "(<script){1,}[^<>]*>[^]*(</script>){1,}"
  195. regEx.IgnoreCase = True
  196. regEx.Global = True
  197. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  198. LoseScriptTag = ClsTempLoseStr
  199. Set regEx = Nothing
  200. End Function
  201. Function LoseIFrameTag(ContentStr)
  202. Dim ClsTempLoseStr,regEx
  203. ClsTempLoseStr = Cstr(ContentStr)
  204. Set regEx = New RegExp
  205. regEx.Pattern = "(<iframe){1,}[^<>]*>[^]*(</iframe>){1,}"
  206. regEx.IgnoreCase = True
  207. regEx.Global = True
  208. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  209. LoseIFrameTag = ClsTempLoseStr
  210. Set regEx = Nothing
  211. End Function
  212. Function LoseObjectTag(ContentStr)
  213. Dim ClsTempLoseStr,regEx
  214. ClsTempLoseStr = Cstr(ContentStr)
  215. Set regEx = New RegExp
  216. regEx.Pattern = "(<object){1,}[^<>]*>[^]*(</object>){1,}"
  217. regEx.IgnoreCase = True
  218. regEx.Global = True
  219. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  220. LoseObjectTag = ClsTempLoseStr
  221. Set regEx = Nothing
  222. End Function
  223. Function LoseSpanTag(ContentStr)
  224. Dim ClsTempLoseStr,regEx
  225. ClsTempLoseStr = Cstr(ContentStr)
  226. Set regEx = New RegExp
  227. regEx.Pattern = "<(/){0,1}span[^<>]*>"
  228. regEx.IgnoreCase = True
  229. regEx.Global = True
  230. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  231. LoseSpanTag = ClsTempLoseStr
  232. Set regEx = Nothing
  233. End Function
  234. Function LoseFontTag(ContentStr)
  235. Dim ClsTempLoseStr,regEx
  236. ClsTempLoseStr = Cstr(ContentStr)
  237. Set regEx = New RegExp
  238. regEx.Pattern = "<(/){0,1}font[^<>]*>"
  239. regEx.IgnoreCase = True
  240. regEx.Global = True
  241. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  242. LoseFontTag = ClsTempLoseStr
  243. Set regEx = Nothing
  244. End Function
  245. Function LoseATag(ContentStr)
  246. Dim ClsTempLoseStr,regEx
  247. ClsTempLoseStr = Cstr(ContentStr)
  248. Set regEx = New RegExp
  249. regEx.Pattern = "<(/){0,1}a[^<>]*>"
  250. regEx.IgnoreCase = True
  251. regEx.Global = True
  252. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  253. LoseATag = ClsTempLoseStr
  254. Set regEx = Nothing
  255. End Function
  256. Function LoseDivTag(ContentStr)
  257. Dim ClsTempLoseStr,regEx
  258. ClsTempLoseStr = Cstr(ContentStr)
  259. Set regEx = New RegExp
  260. regEx.Pattern = "<(/){0,1}div[^<>]*>"
  261. regEx.IgnoreCase = True
  262. regEx.Global = True
  263. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  264. LoseDivTag = ClsTempLoseStr
  265. Set regEx = Nothing
  266. End Function
  267. Function LoseStyleTag(ContentStr)
  268. Dim ClsTempLoseStr,regEx
  269. ClsTempLoseStr = Cstr(ContentStr)
  270. Set regEx = New RegExp
  271. regEx.Pattern = "(<style){1,}[^<>]*>[^]*(</style>){1,}"
  272. regEx.IgnoreCase = True
  273. regEx.Global = True
  274. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  275. LoseStyleTag = ClsTempLoseStr
  276. Set regEx = Nothing
  277. End Function
  278. Sub CreatePath(f_Save_Path_Str,f_Check_Str)
  279. Dim m_FSO_OBJ,f_Str,f_Create_Path,f_Standard_Str,f_Array,f_i,f_Check_Loc
  280. f_Check_Loc = InStr(f_Save_Path_Str,f_Check_Str)
  281. if f_Check_Loc <> 0 then
  282. f_Check_Loc = f_Check_Loc + Len(f_Check_Str)
  283. f_Standard_Str = Right(f_Save_Path_Str,Len(f_Save_Path_Str) - f_Check_Loc)
  284. f_Create_Path = f_Check_Str
  285. f_Array = Split(f_Standard_Str,"")
  286. Set m_FSO_OBJ = Server.CreateObject(G_FS_FSO)
  287. for f_i = LBound(f_Array) to UBound(f_Array)
  288. if f_Array(f_i) <> "" then
  289. f_Create_Path = f_Create_Path & "" & f_Array(f_i)
  290. if Not m_FSO_OBJ.FolderExists(f_Create_Path) then
  291. m_FSO_OBJ.CreateFolder(f_Create_Path)
  292. end if
  293. end if
  294. Next
  295. Set m_FSO_OBJ = Nothing
  296. end if
  297. End Sub
  298. Function LoseHtml(ContentStr)
  299. Dim ClsTempLoseStr,regEx
  300. ClsTempLoseStr = Cstr(ContentStr)
  301. Set regEx = New RegExp
  302. regEx.Pattern = "</*[^<>]*>"
  303. regEx.IgnoreCase = True
  304. regEx.Global = True
  305. ClsTempLoseStr = regEx.Replace(ClsTempLoseStr,"")
  306. LoseHtml = ClsTempLoseStr
  307. End function
  308. %>