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;
}

相关文章

采用header定义为文件然后readfile下载(隐藏下载地址)

复制代码 代码如下:<?php function sendFile($fileName, $fancyName = '', $forceDownload = true, $spee...

PHP使用pdo实现事务处理操作示例

本文实例讲述了PHP使用pdo实现事务处理操作。分享给大家供大家参考,具体如下: 使用事务的好处: 举个例子:银行用户A向用户B转账100元,这个操作被分为两个步骤: (1)A的账户余额...

php面向对象之反射功能与用法分析

本文实例讲述了php面向对象之反射功能与用法。分享给大家供大家参考,具体如下: 个人对反射定义的理解: 首先得说说什么叫反射。对于一个新手来说,反射这个概念常常给人一种似懂非懂的 感觉,...

php抽象类和接口知识点整理总结

本文实例总结了php抽象类和接口相关知识点。分享给大家供大家参考,具体如下: 抽象类(一种抽象的类) 一、什么是抽象方法? 定义:一个方法如果没有方法体(一个方法,不使用{},直接使用分...

PHP获取指定函数定义在哪个文件中以及其所在的行号实例

当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置。在 zend studio 这样的 IDE 中自是可以自动提示到,但当没有安装这样的开发工具时,我们可以怎么办呢?参考如...