asp吧+ 关注 关注: 帖子:16

  

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","")



    1楼  2019/7/3 16:02:35  回复

  发表回复

    发帖