PHP str_替换正则表达式以删除带有标记的链接

PHP str_替换正则表达式以删除带有标记的链接,php,Php,我将如何使用str_replace一起删除以下链接和标记 需要删除标记,同时忽略链接和链接文本: <p><a href=""></a></p> 还有,这个: <p><em><a href=""></a></em></p> 注意,我不需要从这个标签中获取任何内容,只需将它们从我的数据中删除即可。谢谢。使用或一些替代品 另外,请阅读 编辑 另外,正如Ed Marty所指

我将如何使用str_replace一起删除以下链接和标记

需要删除标记,同时忽略链接和链接文本:

<p><a href=""></a></p>

还有,这个:

<p><em><a href=""></a></em></p>

注意,我不需要从这个标签中获取任何内容,只需将它们从我的数据中删除即可。谢谢。

使用或一些替代品

另外,请阅读

编辑


另外,正如Ed Marty所指出的,我想我会指出。

使用该函数。

再次强调,这不是我需要的。我只需要删除以下标记,而不是全部:)。您可能会找到一个答案,它将破解您的HTML,以满足您现在的需要。但是,解析HTML的正确答案不应该涉及regex或
str*
函数。我需要使用str\u replace函数或preg\u replace,没有例外。但是谢谢。只是出于好奇,你为什么被
str\u replace
preg\u replace
奴役?这些都是非常糟糕的HTML解析器。你的问题实际上激起了写一篇博文的欲望,想知道开发人员为什么这样做。我一直看到这个问题,每次回答都是“使用HTML解析器”。为什么不听听这个答案呢?原因是自定义rss解析器可以删除不需要的链接;)我尽量远离HTML解析器,我自己编写代码;)@Charles Sprayberry我同意,
DOM
操作当然是处理html/xml的理想选择,但即使与PCRE相比,它也非常慢。如果您不关心嵌套标记,PCRE将更简单、更快。使用php原生DOM解析器删除元素也有点困难,尤其是与它的其他字符串操作函数相比。我已经找到了“

”$match=preg_replace(“/

”)的解决方案,现在我有了顶级正则表达式,这应该不会那么难:)我自己找到了解决方案,谢谢大家。