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

复制代码 代码如下:
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>1<img width="60" height="90px" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'></P>
<P align=center>2<img src='/uploads/allimg/090403/012F31N9-1.jpg' border="0"></P>
<P align=center>3<img src='/uploads/allimg/090403/012F3D13-2.jpg'style="width:100px"> </P>
<P align=center>4<img width="60" height="90px" src= "http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg"></P>
<P align=center>5<img src=" /uploads/allimg/090403/012F31N9-1.jpg " border="0"></P>
<P align=center>6<img src= " /uploads/allimg/090403/012F31N9-1.jpg " border="0"></P>
<P align=center>7<img 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;
?>

时间: 2024-08-11 13:10:38

正则获取图片地址 链接地址的相关文章

正则获取图片地址 链接地址_正则表达式

复制代码 代码如下: reg = /<[img|href][^>]*src\s*=\s*('|")?([^'">]*)\1([^>])*>/ig 正则获取图片地址 一.问题: 采集的过程中遇到一个问题:从数据库里读出来的图片没有正常显示,分析后发现是数据库里的图片以网站根目录为相对路径方式存储,图片地址如:/uploads/allimg/090403/012F31N9-1.jpg,原来做的读取图片是以http://开关的URL绝对图片获取,所以采集中出现以

帝国cms内容页面获取当前栏目链接地址方法

帝国cms内容页面获取当前栏目链接地址方法: <? $r['classid']=$GLOBALS[navclassid]; $classurl=sys_ReturnBqClassname($r,9); echo $classurl; ?>

PHP 技巧:如何获取当前页面的链接地址

其实不用找 WordPress 函数,PHP 本身就提供了一些系统变量,通过整合下就能获取当前页面的 URL. function wpjam_get_current_page_url(){     $ssl        = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? true:false;     $sp         = strtolower($_SERVER['SERVER_PROTOCOL']);     

asp 获取字符串中url地址函数

asp教程 获取字符串中url地址函数 本文章提供了三款利用asp的正则获取字符串中url地址自定义函数哦,三个方法的实现原理都是获取以http开的url地址哦. on error goto z dim url,key,wwwname url=request.servervariables("server_name") if instr(url,".")>0 then key=split(url,".") wwwname=key(0) ww

U-boot链接地址的详解

1.运行地址<--->链接地址:他们两个是等价的,只是两种不同的说法. 2.加载地址<--->存储地址:他们两个是等价的,也是两种不同的说法. 运行地址:程序在SRAM.SDRAM中执行时的地址.就是执行这条指令时,PC应该等于这个地址,换句话说,PC等于这个地址时,这条指令应该保存在这个地址内. 加载地址:程序保存在Nand flash中的地址. 位置无关码:B.BL.MOV都是位置位置无关码. 位置有关码:LDR PC,=LABEL等类似的代码都是位置有关码. 先看一个链接脚本

PHP正则获取页面所有图片地址_php实例

<?php //取得页面所有的图片地址 function getimages($str) { $match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/"; preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER); return $out; }

php正则提取图片地址

 最近在开发程序的时候需要获取提取内容中的图片地址,这里简单分享下方法,需要的朋友可以参考下 迷上了正则,不断尝试着新花招,首先感谢TNA 的非完全输出RSS,然后再次感谢SH的强迫性学习.没有TNA,我不会去看正则,更不知道世界上有种这么牛的表达式:不是SH的死活说他不懂不知道,我也不会硬着头皮去琢磨,去改进.达到同一个目的,正则的表达方式可以不唯一,没有做不到,只有你没想到.可以这样说吧,正则就是玩设定规律,我大爱这种东西.没有比设定规律筛选东西更让我兴奋.感到awesome的了.   分享

在C#中如何获取网页的验证码链接地址

问题描述 在C#中如何获取网页的验证码链接地址 在C#中如何获取网页的验证码链接地址,比如我想通过在C#窗体中点击获取验证码按钮,得到网页的验证码. 解决方案 你是指验证码图片还是验证码的字符串? 如果是验证码图片,那么一般验证码的图片都是有个链接的,你先获取到这个链接然后将这个链接拼接到当前地址后面(或者当前地址的上一级). 然后通过WebClient的DownloadFile方法下载验证码图片... 如果你想要获取验证码字符串就必须自己想办法识别了...简单的验证码可以通过调用第三方识别引擎

小谈php正则提取图片地址_php技巧

迷上了正则,不断尝试着新花招,首先感谢TNA 的非完全输出RSS,然后再次感谢SH的强迫性学习.没有TNA,我不会去看正则,更不知道世界上有种这么牛的表达式:不是SH的死活说他不懂不知道,我也不会硬着头皮去琢磨,去改进.达到同一个目的,正则的表达方式可以不唯一,没有做不到,只有你没想到.可以这样说吧,正则就是玩设定规律,我大爱这种东西.没有比设定规律筛选东西更让我兴奋.感到awesome的了. 分享一下在php环境下使用正则提取图片地址的一些小心得: 图片网址规范的html代码无非就是 复制代码