如何在 php 中以正确的顺序包装 HTML 标签?

Posted

技术标签:

【中文标题】如何在 php 中以正确的顺序包装 HTML 标签?【英文标题】:How to have the HTML tags wrapped in the right order in php? 【发布时间】:2019-10-05 20:17:19 【问题描述】:

我有一些不完美的 html 代码。例如,我有

<b><i>bold and italic</b></i>

我想让它被层层包裹,即。

<b><i>bold and italic</i></b>

如何在 php 中做到这一点?

【问题讨论】:

【参考方案1】:

我们可以匹配两个打开/关闭标签并滑动textContent,然后使用preg_replace替换它:

$re = '/(<.+>)(<.+>)(.+)(<\/.+>)(<\/.+>)/s';
$str = '<b><i>bold and italic</b></i>';
$subst = "$1$2$3$5$4";

$result = preg_replace($re, $subst, $str);

echo $result;

输出

<b><i>bold and italic</i></b>

正则表达式

如果这不是您想要的表达方式,您可以在regex101.com 中修改/更改您的表达方式。

正则表达式电路

您还可以在jex.im 中可视化您的表达式:

【讨论】:

谢谢,但可能有 3 个或更多标签,我该如何处理?例如&lt;p&gt;&lt;b&gt;&lt;i&gt;bold and italic&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;

以上是关于如何在 php 中以正确的顺序包装 HTML 标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 webpack 中以正确的顺序导入样式

如何在 QQuickPaintedItem 中以有效的方式绘制顺序图像

如何从迭代器()中以正确的顺序获取元素

在 PHP / Laravel 中以抽象的方式包装 JSON 响应

如何在 PHP 输出字符串中修复“网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)”

foreach 是不是保证在 php 中以数组顺序进行迭代?