我有这样的段落
<p>
<p>This is new content</p>
</p>
我想使用php删除该外部段落标记。
我们如何删除。你能解释一下。
答案 0 :(得分:1)
按面值,你可以
$content = preg_replace('~<p>\s*<p>(.*?)</p>\s*</p>~s','<p>$1</p>',$content);
这里是一个demo(因为它使用/
作为分隔,因此演示有转发的转发)
..但我怀疑你的真实内容比这更复杂......
答案 1 :(得分:0)
您可以使用str_replace函数。这可能不是正确的答案。但它确实有效。
试试这个
$string = "<p><p>This is new content</p></p>";
$string = str_replace("<p><p>","<p>",$string);
$string = str_replace("</p></p>","</p>",$string);
now $string will have "<p>This is new content</p>"
答案 2 :(得分:0)
你可以试试这个:
$str = preg_replace('!<p>(.*?)</p>!Uis', '$1', $str);
如果您提供更好的背景,我可以提供更好的答案。这将取一对<p></p>
标签内的内容并将其返回。如果它们是嵌套的<p>
标记,那么它将删除嵌套级别。如果它们没有嵌套,则会删除<p>
标记。
答案 3 :(得分:0)
替换角括号之间的空格和换行符,然后用一个标记替换两个段落标记。
$string = preg_replace('/>\s+</', '><', $string);
$string = str_replace("<p><p>","<p>",$string);
$string = str_replace("</p></p>","</p>",$string);