加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

在ASP中常用的函数是 getIMG()

发布时间:2023-10-23 12:35:02 所属栏目:Asp教程 来源:
导读:发现BUG请在后面留言:修正src=后面有空格不能正确匹配.已修正.src=&#39;&#39;为空时出错.已修正.发现BUG: 图片路径有多个空格时只能保留一个.未修正.修正图片路径有多个空格时只能保留一个的BUG.已修正.<%&#39;功能

发现BUG请在后面留言:

修正

src=后面有空格不能正确匹配.已修正.

src=''为空时出错.已修正.

发现BUG: 图片路径有多个空格时只能保留一个.未修正.

修正

图片路径有多个空格时只能保留一个的BUG.已修正.

<%

'功能:获取全部图片地址,保存到一个数组.

'来源:http://jorkin.reallydo.com/article.asp?id=448

'需要ReplaceAll函数:http://jorkin.reallydo.com/article.asp?id=406

Function getIMG(sString)

 Dim sReallyDo, regEx, iReallyDo

 Dim oMatches, cMatch

 '//定义一个空数组

 iReallyDo = -1

 ReDim aReallyDo(iReallyDo)

 If IsNull(sString) Then

 getIMG = aReallyDo

 Exit Function

 End If

 '//格式化HTML代码

 '//将每个 <img 换行 方便正则替换

 sReallyDo = sString

 On Error Resume Next

 sReallyDo = Replace(sReallyDo, vbCr, " ")

 sReallyDo = Replace(sReallyDo, vbLf, " ")

 sReallyDo = Replace(sReallyDo, vbTab, " ")

 sReallyDo = Replace(sReallyDo, "<img ", vbCrLf & "<img ", 1, -1, 1)

 sReallyDo = Replace(sReallyDo, "/>", " />", 1, -1, 1)

 sReallyDo = ReplaceAll(sReallyDo, "= ", "=", True)

 sReallyDo = ReplaceAll(sReallyDo, "> ", ">", True)

 sReallyDo = Replace(sReallyDo, "><", ">" & vbCrLf & "<")

 sReallyDo = Trim(sReallyDo)

 Set regEx = New RegExp

 regEx.IgnoreCase = True

 regEx.Global = True

 '//去除onclick,onload等脚本

 regEx.Pattern = "/s[on].+?=([/""|/'])(.*?)/1"

 sReallyDo = regEx.Replace(sReallyDo, "")

 '//将SRC不带引号的图片地址加上引号

 regEx.Pattern = "<img.*?/ssrc=([^/""/'/s][^/""/'/s>]*).*?>"

 sReallyDo = regEx.Replace(sReallyDo, "<img src=""$1"" />")

 '//正则匹配图片SRC地址

http://bizhi.cncms.com/

 regEx.Pattern = "<img.*?/ssrc=([/""/'])([^/""/']+?)/1.*?>"

 Set oMatches = regEx.Execute(sReallyDo)

 '//将图片地址存入数组

 For Each cMatch in oMatches

 iReallyDo = iReallyDo + 1

 ReDim PReserve aReallyDo(iReallyDo)

 aReallyDo(iReallyDo) = regEx.Replace(cMatch.Value, "$2")

 Next

 getIMG = aReallyDo

End Function

%>

<%

'用法:很多人都问我怎么用,其实数组怎么用的这个就怎么用.

sContent = "HTML代码字段" '//sContent代表Html代码,原来写个ors怎么就不懂是记录集呢。。。

Dim aImages : aImages = GetImg(sContent) '//定义一个数组,并且用来存放所有分析到的图片地址

'列出所有图片的地址:

For i = 0 To UBound(aImages)

 Response.Write("<b>第" & i + 1 & "张图片地址:</b> " & aImages(i) & "<br />")

Next

'列出第一张图片地址:

If UBound(aImages)> -1 Then Response.Write("<p><b>第一张图片地址:</b> " & aImages(0) & "</p>")

'列出最后一张图片地址:

If UBound(aImages)> -1 Then Response.Write("<p><b>最后一张图片地址:</b> " & aImages(UBound(aImages)) & "</p>")

%>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章