php preg_match_all结合str_replace替换内容中所有img

yipeiwu_com6年前PHP代码库
采集回来的图片img标签中,有好多javascript脚本和无用的信息,必需过替换自己想要的,比如alt。先看看要过滤的内容,我随便复制出来:
复制代码 代码如下:

sdfsdfsdf<img alt=”3568df.com靓图” src=”/zb_users/upload/202003/ryz5otttdwv.gif” src=”/zb_users/upload/202003/ci0covzfk5t.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sfsdfsdfasdfsadf<img alt=”3568df.com靓图 ” src=”/zb_users/upload/202003/f0gamdd2tjm.gif” src=”/zb_users/upload/202003/vorgxnjpbc3.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sdfsadf<img alt=”3568df.com靓图 ” src=”/zb_users/upload/202003/4ft4mt1bpa1.gif” src=”/zb_users/upload/202003/dgy3j5f3zi3.gif” width=1 onclick=”javascript:;” onload=”javascript:if(this.width>500){this.resized=true;this.style.width=500;}”>sdfsdf

要把上面替换成形如:
复制代码 代码如下:

<img alt=”我的信息” src=”/zb_users/upload/202003/a3ngzv3rrqp.gif” src=”/zb_users/upload/202003/qia2kfrmeap.gif” /> 其中src=”/zb_users/upload/202003/qia2kfrmeap.gif” src=”/zb_users/upload/202003/qia2kfrmeap.gif”这个地址要保留,因为图片用的都是源地址

方法大致是:先读取内容里的所以IMG标签,然后把每个IMG标签的SRC抽取出来,并且组合成自己的内容,最后进行替换。
preg_match_all就是我想要的函数,它能够把正则表达式匹配到的内容建立一个三维数组,你可以对它们进行遍历查找替换,不太了解的请查查手册,这里不作具体介绍。函数代码:
复制代码 代码如下:

function replace($str)
{
preg_match_all(”/<img(.*)(src=\”[^\"]+\”)[^>]+>/isU”, $str, $arr);
for($i=0,$j=count($arr[0]);$i<$j;$i++){
$str = str_replace($arr[0][$i],”<img alt=\”我的信息” “.$arr[2][$i].” />”,$str);
}
return $str;
}

相关文章

php实现指定字符串中查找子字符串的方法

本文实例讲述了php实现指定字符串中查找子字符串的方法。分享给大家供大家参考。具体分析如下: 对strpos()函数可以用来在php中查找子字符串。strpos()函数将试图找到子字符串...

PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】

PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】

本文实例讲述了PHP实现绘制二叉树图形显示功能。分享给大家供大家参考,具体如下: 前言: 最近老师布置了一个作业:理解并实现平衡二叉树和红黑树,本来老师是说用C#写的,但是我学的C#基本...

PHP5函数小全(分享)

很多PHP前辈都写了PHP大全,但是我看了发现那些所谓的“大全”根本就不全,甚至比我整理的这个列表内的函数还要少,竟然冠名“大全”,让我不愤,背道而驰,整个“小犬”。usleep() 函...

php工具型代码之印章抠图

能将白底红字的印章抠出来,用的是php,框架是laravel,其他框架请自行调节。扣其他颜色也可以,把里面的那段rgb参数判断改改就行了,最后抠出来的效果就是白底变透明,然后只留下红色的...

PHP 裁剪图片成固定大小代码方法

做一个首页调用图像,有时候往往需要获得固定大小的图像,因为首页的图像位置通常由设计人员指定好了,如果是做最新发布图像调用,因为不知道客户会上传什么比例的图像,所以,有时候也就没有办法确定...