php preg_match_all结合str_replace替换内容中所有img
程序员文章站
2022-03-08 13:55:27
采集回来的图片img标签中,有好多javascript脚本和无用的信息,必需过替换自己想要的,比如alt。先看看要过滤的内容,我随便复制出来: 复制代码 代码如下: sdf...
采集回来的图片img标签中,有好多javascript脚本和无用的信息,必需过替换自己想要的,比如alt。先看看要过滤的内容,我随便复制出来:
sdfsdfsdf<img alt=”3568df.com靓图” src=”http://www.aaa.com/upimg /080330/120d1232295023x0.gif” src=”http://www.eee.com/upimg/080330 /120d1232295023x0.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sfsdfsdfasdfsadf<img alt=”3568df.com靓图 ” src=”http://www.3568.com/upimg/080330 /120d1232295023x0.gif” src=”http://www.ddd.com/upimg/080330 /120d1232295023x0.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sdfsadf<img alt=”3568df.com靓图 ” src=”http://www.xxx.com/upimg/080330/120d1232295023x0.gif” src=”http://www.sss.com/upimg/080330/120d1232295023x0.gif” width=1 onclick=”javascript:;” onload=”javascript:if(this.width>500){this.resized=true;this.style.width=500;}”>sdfsdf
要把上面替换成形如:
<img alt=”我的信息” src=”http://www.xxx.com/upimg /080330/120d1232295023x0.gif” src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.gif” /> 其中src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.gif” src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.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;
}
复制代码 代码如下:
sdfsdfsdf<img alt=”3568df.com靓图” src=”http://www.aaa.com/upimg /080330/120d1232295023x0.gif” src=”http://www.eee.com/upimg/080330 /120d1232295023x0.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sfsdfsdfasdfsadf<img alt=”3568df.com靓图 ” src=”http://www.3568.com/upimg/080330 /120d1232295023x0.gif” src=”http://www.ddd.com/upimg/080330 /120d1232295023x0.gif” width=1 onclick=”javascript:; ” onload=”javascript:if(this.width>500){this.resized=true; this.style.width=500;}”>sdfsadf<img alt=”3568df.com靓图 ” src=”http://www.xxx.com/upimg/080330/120d1232295023x0.gif” src=”http://www.sss.com/upimg/080330/120d1232295023x0.gif” width=1 onclick=”javascript:;” onload=”javascript:if(this.width>500){this.resized=true;this.style.width=500;}”>sdfsdf
要把上面替换成形如:
复制代码 代码如下:
<img alt=”我的信息” src=”http://www.xxx.com/upimg /080330/120d1232295023x0.gif” src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.gif” /> 其中src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.gif” src=”http://www.xxx.com/upimg/080330 /120d1232295023x0.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 preg_match_all结合str_replace替换内容中所有img
-
php preg_match_all结合str_replace替换内容中所有img_php技巧
-
php preg_match_all结合str_replace替换内容中所有img
-
php preg_match_all结合str_replace替换内容中所有img
-
php preg_match_all结合str_replace替换内容中所有img_PHP
-
location.replace php preg_match_all结合str_replace替换内容中所有img
-
PHP基于正则批量替换Img中src内容实现获取缩略图的功能代码详解
-
php preg_match_all结合str_replace替换内容中所有img
-
PHP基于正则批量替换Img中src内容实现获取缩略图的功能代码详解
-
php如何替换img中src内容