0

我做了这个表达式来删除页面中的所有空(包括只有空格的标签)标签。

$content =  preg_replace('/<[^\/>]*>([\s]?)*<\/[^>]*>/', '', $content);

在它不得不处理这样的内容之前,它一直是一种享受……

 <blockquote>
<p >foo bar</p>
</blockquote>
<p ><a href="image.jpg" rel="lightbox" title=""><img  title="image" src="image.jpg" /></a><br /></p>

并将其输出为...

<blockquote>
<p >this is a test for the pluggin</p>
<p ><a href="image.jpg" rel="lightbox" title=""><img  title="image" src="image.jpg" /></a><br /></p>

从而删除</blockquote>.

我一直在这个问题上摸不着头脑,无法让它工作。除了指定它应该格式化的标签之外,任何人都可以看到一个明显的解决方案吗?我还应该说它正在格式化 wordpress 帖子上的“the_content”。

4

2 回答 2

3

正则表达式和 HTML 不是很好的匹配,因为 HTML 不是常规语法,并且没有边界情况和陷阱。最好使用 HTML 解析器(例如这个)并检查/操作 DOM 对象。

于 2009-12-12T12:27:26.677 回答
0

您可能还想看看HTML Purifier,它比 Simple HTML Dom 更高级,如果您发现它没有获取所有标签。

于 2009-12-12T12:50:12.563 回答