php正则提取html图片(img)src地址与任意属性

发表于2019-05-22 19:37:38来源于iscona的简书

次点击[] [] [] [打印] [关闭窗口] [评论]

欢迎大家加入创想工作室QQ群 网络瘫痪上不了网?电脑出故障?找破解软件?加入创想工作室QQ群,向大神求助,一步解决问题!QQ群号码:326338868[点此获取更多QQ群]
我们在实际工作中,很经常需要用到提取文章正文第一张图片的网址,例如采集数据。实现起来也简单,只需要用到正则区匹配就可以了。
 
简单版:
 
<?php  
header("Content-Type: text/html;charset=utf-8");  
  
$str = '<div class="ui-block-a" align="center">  
        <a href="online-39.html">![](https://www.22ba.com/uploads/image/20140620/2014052010425.jpg)  
        <h3>2014年</h3></a>  
      </div>';  
  
$imgpreg = "/<img (.*?) src="(.+?)".*?>/";  
preg_match($imgpreg,$str,$img);  
$mycount=count($img)-1;  
 $imgval = $iim[$mycount];  
if(!empty($imgval)){  
    echo $imgval;  
}else{  
    echo 'no';  
}  
?>
 
详细搬
 
<?php  
/*PHP正则提取图片img标记中的任意属性*/  
$str = '<center>![](/uploads/images/20100516000.jpg)<br />PHP正则提取或更改图片img标记中的任意属性</center>';  
  
//1、取整个图片代码  
preg_match('/<s*imgs+[^>]*?srcs*=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")  
print preg_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",并省去宽和高  
print preg_replace('/(<img).+(src="?.+)images/(.+.(jpg|gif|bmp|bnp|png)"?).+>/i',"${1} ${2}uc/images/${3}>",$str);  
?>

相关热词搜索:php正则提取图片

© copyright 2002-2024, 22BA.COM All Rights Reserved

网站备案号:粤ICP备19114910号

ChuangXiang Design Studio - WebDesign & Internet Marketing

关于我们业务范围联系我们开心一刻网站地图

QQ群一:326338868QQ群二:78712271

QQ群三:193078177

邮箱:news@22ba.com

地址:深圳市福田区金田路现代国际大厦2606