• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    正则获取图片地址 链接地址

    复制代码 代码如下:

    reg = /[img|href][^>]*src\s*=\s*('|")?([^'">]*)\1([^>])*>/ig


    正则获取图片地址

    一、问题:

    采集的过程中遇到一个问题:从数据库里读出来的图片没有正常显示,分析后发现是数据库里的图片以网站根目录为相对路径方式存储,图片地址如:/uploads/allimg/090403/012F31N9-1.jpg,原来做的读取图片是以http://开关的URL绝对图片获取,所以采集中出现以根目录开始的图片地址采集失败。

    二、解决方案:

    分析HTML代码,显示图片定用img>标签,写一个正则式获取img>里的图片地址再加网站的网站转换为URL的绝对地址,接着的事情交给后面的代码(远程图片获取到本地)。

    1) 完善解决方法,以“img”开始写正规,但这个正式式比较难写要考虑“img>”的属性、空格、多空格、单引号、双引号、不规范的属性引用(如单引号或双引号括起的属性值)等等。
    2)应急解决方法,只要考虑“src=”属性开始的正则式,但这种方式存在不完善的地方,只要有“src=”出现在的都会被替换,出现“src="的可能性有:javascript,文本里出现的"src"等。但这些是比较少的,再加上一个图片格式做正则限定,出现被误替换的概率会更少。

    三、实现代码:

    考虑到第一种方法的难度暂时没有写,这里第二种应急解决方法实现(实现涉及的正则式内容这里不做讲解和分析,正则式的知识内容请google或baidu ^v^):

    复制代码 代码如下:

    ?php
    //测试样式,考虑多种情况下的正则式。
    $body = HTML
    P align=center>1img width="60" height="90px" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'>/P>
    P align=center>2img src='/uploads/allimg/090403/012F31N9-1.jpg' border="0">/P>
    P align=center>3img src='/uploads/allimg/090403/012F3D13-2.jpg'style="width:100px"> /P>
    P align=center>4img width="60" height="90px" src= "http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg">/P>
    P align=center>5img src=" /uploads/allimg/090403/012F31N9-1.jpg " border="0">/P>
    P align=center>6img src= " /uploads/allimg/090403/012F31N9-1.jpg " border="0">/P>
    P align=center>7img src= /uploads/allimg/090403/012F3D13-2.jpg style="width:100px"> /P>
    HTML;

    //网站的地址
    $str='src=/'http://www.chongwen.com/';
    $body=preg_replace('/src/s*?=/s*?[/"|/']?/s*?//(.+?/.(?:jpg|gif|png|bmp))(/"|/'|/s)*?/s*?/is',"$str$1 '",$body);
    echo $body;
    ?>

    您可能感兴趣的文章:
    • 用正则表达式替换图片地址img标签
    • PHP提取字符串中的图片地址[正则表达式]
    上一篇:又一篇正则表达式学习笔记
    下一篇:Java 正则表达式详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    正则获取图片地址 链接地址 正则,获取,图片,地址,链接,