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

yipeiwu_com5年前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;
}

相关文章

Paypal实现循环扣款(订阅)功能

起因 业务需求要集成Paypal,实现循环扣款功能,然而百度和GOOGLE了一圈,除官网外,没找到相关开发教程,只好在Paypal上看,花了两天后集成成功,这里对如何使用Paypal的支...

php curl基本操作详解

cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。它是一个强大的库支持http、https、ftp、telnet、file等协议,同时也支持HTTPS认证、HTTP POS...

php PDO属性设置与操作方法分析

本文实例讲述了php PDO属性设置与操作方法。分享给大家供大家参考,具体如下: 设置PDO在处理数据的过程中采用什么方式去处理 PDO::setAttribute:设置属性 PDO::...

小文件php+SQLite存储方案

我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限。只能另装思路,采用php+SQLite解决问题,经过我测试...

PHP输出图像imagegif、imagejpeg与imagepng函数用法分析

本文实例讲述了PHP输出图像imagegif、imagejpeg与imagepng函数用法。分享给大家供大家参考,具体如下: imagegif()、imagejpeg()、imagepn...