删除包含 preg_replace/php 的封闭标签

Remove enclosing tag with preg_replace/php

我需要从 html 字符串中删除一些自定义标签。字符串类似于:

some html code
<para>
    <embed view="embed" [...some more attributes...]>[...]</embed>
</para>
more code here...

此代码块可以在一个页面中出现多次(来自 cms 后端)。 我需要删除 "para" 和“/para”标签,以便只保留 "embed" 标签。我尝试了几个 preg_replaces,但直到现在我都找不到可行的解决方案。

有人可以帮我吗?

非常感谢!

您可以使用像这样的简单代码:

$tags = array("<para>", "</para>");
$string = "<para>
                <embed view=\"embed\" [...some more attributes...]>[...]</embed>
           </para>";
echo str_replace($tags, "", $string);

PHP demo

使用下面的代码解决您的问题。

<?php
$string = "<para><embed view='embed'>[...]</embed></para>";
$new  = strip_tags($string, '<para>'); 
echo $new;
?>

本地测试。在我的本地主机上像魅力一样工作。