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 />