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

2016-02-19 10:31 8 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享正则获取图片地址 链接地址,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

代码如下:

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


正则获取图片地址

一、问题:

采集的过程中遇到一个问题:从数据库里读出来的图片没有正常显示,分析后发现是数据库里的图片以网站根目录为相对路径方式存储,图片地址如:http://img.warting.com/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 style="text-align:center"1img width="60" height="90px" src='http://www.chongwen.comhttp://img.warting.com/allimg/090403/012F35310-0.jpg'/P
P style="text-align:center"2img src='http://img.warting.com/allimg/090403/012F31N9-1.jpg'/P
P style="text-align:center"3img src='http://img.warting.com/allimg/090403/012F3D13-2.jpg'style="width:100px" /P
P style="text-align:center"4img width="60" height="90px" src= "http://www.chongwen.comhttp://img.warting.com/allimg/090403/012F35310-0.jpg"/P
P style="text-align:center"5img src=" http://img.warting.com/allimg/090403/012F31N9-1.jpg "/P
P style="text-align:center"6img src= " http://img.warting.com/allimg/090403/012F31N9-1.jpg "/P
P style="text-align:center"7img src= http://img.warting.com/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;
?

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1594926.html

延伸阅读
标签: Web开发
以下是取出HTML里面的图片地址的函数: 主要原理就是用正则判断 img 的src属性。这在采集程序中将非常有用。 函数如下: 以下是引用片段: Function ShowPic(str)  Set objRegExp = New Regexp'设置配置对象   objRegExp.IgnoreCase = True'忽略大小写   objRegExp.Gl...
标签: ASP
  现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载图...
标签: Web开发
一,取得原页中的图片的地址。 % function PicStr(str)  Set objRegExp = New Regexp '设置配置对象  objRegExp.IgnoreCase = True '忽略大小写  objRegExp.Global = True '设置为全文搜索  objRegExp.Pattern = "IMG.+?" '为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的IMG标签,然后再取出里面的图片地址...
标签: Web开发
修改地址后的参数: script function getNewUrl(oldurl,paramname,pvalue){     var reg = new RegExp("(\\?|&)"+ paramname +"=([^&]*)(&|$)","gi");     var t=oldurl.match(reg)[0];     var retxt=t.substring(0,t.indexOf("=")+1)+pvalue;     if(t.charAt(t.length-1)=='...
标签: ASP
  现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。能不能让服务器自动去下载...

经验教程

820

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部