正则获取图片地址 链接地址
代码如下:
reg = /<[img|href][^>]*srcs*=s*(‘|”)?([^'”>]*)1([^>])*>/ig
正则获取图片地址
一、问题:
采集的过程中遇到一个问题:从数据库里读出来的图片没有正常显示,分析后发现是数据库里的图片以网站根目录为相对路径方式存储,图片地址如:http://img.warting.com/allimg/090403/012F31N9-1.jpg,原来做的读取图片是以http://开关的URL绝对图片获取,所以采集中出现以根目录开始的图片地址采集失败。
二、解决方案:
分析HTML代码,显示图片定用
标签,写一个正则式获取
里的图片地址再加网站的网站转换为URL的绝对地址,接着的事情交给后面的代码(远程图片获取到本地)。
1) 完善解决方法,以“ ”的属性、空格、多空格、单引号、双引号、不规范的属性引用(如单引号或双引号括起的属性值)等等。
2)应急解决方法,只要考虑“src=”属性开始的正则式,但这种方式存在不完善的地方,只要有“src=”出现在的都会被替换,出现“src=”的可能性有:javascript,文本里出现的”src”等。但这些是比较少的,再加上一个图片格式做正则限定,出现被误替换的概率会更少。
三、实现代码:
考虑到第一种方法的难度暂时没有写,这里第二种应急解决方法实现(实现涉及的正则式内容这里不做讲解和分析,正则式的知识内容请google或baidu ^v^):
代码如下:
//测试样式,考虑多种情况下的正则式。
- <?php
- //测试样式,考虑多种情况下的正则式。
- $body = <<<HTML
- <P style=“text-align:center”>1<img width=“60” height=“90px” src=‘http://www.chongwen.comhttp://img.warting.com/allimg/090403/012F35310-0.jpg’></P>
- <P style=“text-align:center”>2<img src=‘http://img.warting.com/allimg/090403/012F31N9-1.jpg’></P>
- <P style=“text-align:center”>3<img src=‘http://img.warting.com/allimg/090403/012F3D13-2.jpg’style=“width:100px”> </P>
- <P style=“text-align:center”>4<img width=“60” height=“90px” src= “http://www.chongwen.comhttp://img.warting.com/allimg/090403/012F35310-0.jpg”></P>
- <P style=“text-align:center”>5<img src=” http://img.warting.com/allimg/090403/012F31N9-1.jpg “></P>
- <P style=“text-align:center”>6<img src= ” http://img.warting.com/allimg/090403/012F31N9-1.jpg “></P>
- <P style=“text-align:center”>7<img 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;
- ?>
转载请注明:代码学堂>编程开发 > 正则学习 > 正则获取图片地址 链接地址
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!
磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持
磊宇堂 » 正则获取图片地址 链接地址
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!
磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持
磊宇堂 » 正则获取图片地址 链接地址