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

相关文章

PHP 开发环境配置(测试开发环境)

PHP 开发环境配置(测试开发环境)

1. 创建一个文件(test.php) 我的路径如下 F:\Projects\PHPTest\test.php 2. 用记事本打开Apache配置文件 D:\Program File...

PHP 分页原理分析,大家可以看看

1、前言 分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对...

PHP实现简单搜歌的方法

本文实例讲述了PHP实现简单搜歌的方法。分享给大家供大家参考。具体实现方法如下: <form name="" method="post" action=""> <i...

javascript,php获取函数参数对象的代码

例如: 复制代码 代码如下: function say () { alert (arguments[0]+'说:'+arguments[1]); } say ('fanglor','fa...

怎样使用php与jquery设置和读取cookies

HTTP协议是一种无状态协议,这意味着你对网站的每一个请求都是独立的,而且因此无法通过它自身保存数据。但这种简单性也是它在互联网早期就广泛传播的原因之一。不过,它仍然有一种方法能让你用c...