ASP提取文章里的前3张图片并显示出来
-
’取得图片
function GetImgs(str)
dim objRegExp1,mm,Match1,imgsrc,i
Set objRegExp1 = New Regexp
objRegExp1.IgnoreCase = True ’忽略大小写
objRegExp1.Global = True ’全文搜索
objRegExp1.Pattern = "src\=.+?\.(gif|jpg|png|bmp)"
set mm=objRegExp1.Execute(str)
i=0
For Each Match1 in mm
if i<3 then ’提取3张图片
imgsrc=Match1.Value
’也许存在不能过滤的字符,确保万一
imgsrc=replace(imgsrc,"""","")
imgsrc=replace(imgsrc,"src=","")
imgsrc=replace(imgsrc,"<","")
imgsrc=replace(imgsrc,">","")
imgsrc=replace(imgsrc,"img","")
imgsrc=replace(imgsrc," ","")
GetImgs=getimgs&"||"&imgsrc’把里面的地址串起来组成备用数组
end if
i=i+1
next
end function
’获取内容中的第一张图片
function Get_FirstPic(str) ’取得img 标签内容
dim tmp,objRegExp,Matches,Match
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True ’忽略大小写
objRegExp.Global = false ’全文搜索 !关键!
objRegExp.Pattern = "<img (.*?)src=(.[^\[^>]*)(.*?)>"
Set Matches =objRegExp.Execute(str)
For Each Match in Matches
tmp=tmp & Match.Value
Next
Get_FirstPic=getimgs(tmp)
end function
这里一共有两个过程。第一个过程是提取文章的N张图片(自己改变i的循环次数来达到提取几张的目的),第二个过程是提取第一张图片。两个过程都是独立的,需要用哪个就用哪个过程。
使用方法:
a=GetImgs(文章字段)
b=Get_FirstPic(文章字段)
response.write a
response.write b
自行看一下就知道了。
过程提取图片会保存完整的域名,使用replace函数过滤一下吧。replace(a,"www.xxx.com","")