php preg_match_all结合str_replace替换内容中所有img
发布于 2014-10-02 20:40:01 | 197 次阅读 | 评论: 0 | 来源: 网友投递
PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。
本文是一个php结合preg_match_all函数结合str_replace函数实现的可以用来替换内容中所有img标签的代码,感兴趣的同学参考下.
最近做站的时候,采集了大量的数据,但采回来的数据基本上都要经过过滤原站保留的数据,其中IMG就是一个地方。网站上好多这些应用例子似乎没有必要“秀”出来,但站已几天没写日志,那就来一个吧
采集回来的图片img标签中,有好多javascript脚本和无用的信息,必需过替换自己想要的,比如alt。先看看要过滤的内容,我随便复制出来:
sdfsdfsdf
500){this.resized=true; this.style.width=500;}”>sfsdfsdfasdfsadf
500){this.resized=true; this.style.width=500;}”>sdfsadf
500){this.resized=true;this.style.width=500;}”>sdfsdf
要把上面替换成形如:
其中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(”/]+>/isU”, $str, $arr);
for($i=0,$j=count($arr[0]);$i
$str = str_replace($arr[0][$i],””,$str);
}
return $str;
}
相关阅读:
php preg_match_all结合str_replace替换内容中所有img
php计算多维数组中所有值总和的方法
PHP基于反射获取一个类中所有的方法
php中替换字符串中的空格为逗号','的方法
php实现下载远程网页中所有图片的示例代码
php中通过正则表达式下载内容中的远程图片的函数代码
php数组函数之array_count_values() 统计数组中所有值出现的次数函数
抓取并下载CSS中所有图片文件的php代码
PHP正则提取内容中的图片地址并循环输出
PHP获取表单中所有复选框值的方法
PHP清除数组中所有字符串两端空格的方法
PHP清除字符串中所有无用标签的方法