注意,是删除标签之外的所有空格,之前在采集内容的时候把标签属性这玩意给忘了,整的我都白采了……比如,采集到的结果中有图片,那代码中就有这个样子的东西
<img src="">
把空格去掉,这不,完犊子了~~~~
我不太会正则,不知道用正则有没有办法做到,所以只好用本办法来了,大概原理是:
1、读取所有标签字符,给它换个马甲
2、替换空格
3、把马甲再换回去
具体代码如下:
$c=htmlspecialchars_decode($value['cont']);//注意解码啊,要不找不到了 preg_match_all('/<.*?>/i',$c,$rst);//查找出所有标签字样,包括开始标签和结束标签,如<p></p><img ...>等等 if($rst[0]){ foreach ($rst[0] as $key => $v) { $c=str_ireplace($v,'{'.md5($v).'}',$c);//把匹配到的html标签给它换个马甲 } } $c=preg_replace('/\s+/','',$c);//替换空格 foreach ($rst[0] as $key => $v) { $c=str_ireplace('{'.md5($v).'}',$v,$c);//把马甲再换成对应的html标签 } //最后记得更新入库
© 致远 2020-12-20,原创内容,转载请注明出错:php删除内容中除标签之外的所有空格