当前位置:编程学习 > php >>

PHP正则表达式提取或替换img标记属性提取网页图片地址

以下是本人最近用正则表达式提取网页html源码里面图片地址img标记属性的记录,放在这里希望对你有所帮助 前面为测试过正在使用,后面几个是网上流传的方法 找了半天你也看看
$pattern="/(http|https|ftp|rtsp|mms):(\/\/|\\\\){1}(([A-Za-z0-9_-])+[.]){1,}([A-Za-z0-9]{1,5})\/(\S+\.(jpg|jpeg|gif|bmp|png|webp|svg))/i";   
$str="<a href='/make/21353/' target='_blank'><img title='燃烧的爆竹送财童子和财神爷banner制作_960x150' src='https://www.zhaoxi.net/images/mymake/2018/2/201803140243024359.gif'></a></dd><dd><a href='/make/21343/' target='_blank'><img title='一堆金币卡通男孩问答网banner设计欣赏_728x90' src='https://www.zhaoxi.net/images/mymake/2018/3/201803091609160934.jpg'></a></dd><dd><a href='/make/21341/' target='_blank'><img title='满地金光闪闪金币作色三个奖杯banner横幅_960x100' src='https://www.zhaoxi.net/images/mymake/2018/3/201803071941194122.jpg'></a></dd><dd><a href='/make/21326/' target='_blank'><img title='右侧一叠投资点子网banner在线制作_400x160' src='https://www.zhaoxi.net/images/mymake/2017/11/201802270139013948.jpg'></a>";    
preg_match_all($pattern,$str,$match);  echo "<p>测试文件<hr/>";  
print_r($match);  
$c=count($match[0]);  for($i=0;$i<$c;$i++)  {  echo $match[0][$i].'<hr>';  }

$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/"; 

preg_match_all($pattern,$str,$match); 
print_r($match); 

$c=count($match[1]);
for($i=0;$i<$c;$i++)
{
 echo '<a href="'.$match[1][$i].'">'.$match[1][$i].'</a><br>';
}


php提取获取图片地址 内容里面的地址

 
/*PHP正则提取图片img标记中的任意属性*/
$str='<center><img src="https://www.zhaoxi.net/images/mymake/2015/3/201503091758175819.gif" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性</center>';
 
//1、取整个图片代码
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);
echo$match[0];
 
//2、取width
preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match);
echo$match[1];
 
//3、取height
preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match);
echo$match[1];
 
//4、取src
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match);
echo$match[1];
 
/*PHP正则替换图片img标记中的任意属性*/
//1、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg")
printpreg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\${1}uc/images/\${3}",$str);
echo"<hr/>";
 
//2、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg",并省去宽和高
printpreg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \${2}uc/images/\${3}>",$str);
 
?>
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,