Code Bye

正则表达式替换多个br,清除空白标记p的方法

PHP用于整理html的函数,实现的目标:
目标一,三个或三个以上的<br />(最好兼容<br>,不强求),替换为两个<br /><br />,比如:
例11,将
<br />     <br />
<br />
替换为<br /><br />.
例12,将
<br />
<br />
<br />
<br />
替换为<br /><br />.(注意,有时有换行和空白)
目标二,清除空白标记<p></p>(包含<br />时也清除,例如:
例2,清除
<p></p>
或(包含<br />)
<p><br /></p>
或(空白,空白符,换行)
<p> <br />  
</p>
或(嵌套)
<p><p> <br /></p>
</p>

 

空白符= & nbsp ;
解决方法:$content = preg_replace(array("/\s*(<br\s*\/?\s*>\s*){2,}/im","/(<p>(\s|\s*<br\s*\/?\s*>\s*)*<\/p>)+/im"),array("\1\1",""),$content);

不过,<p>& nbsp ;<br /></p>还不能过滤

其中(<br\s*\/?\s*>\s*){2,}用于匹配多个<br />

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明正则表达式替换多个br,清除空白标记p的方法