gpt4 book ai didi

php - 用

标签和类替换标题 (

,

...) 标签

转载 作者:行者123 更新时间:2023-12-03 23:02:52 25 4
gpt4 key购买 nike

我希望将标签从 WYSIWYG 编辑器替换为 .

目前我正在使用以下代码来实现这一点。

$content = preg_replace('/<h1(.*?)<\/h1>/si', '<p class="heading-1"$1</p>', $content);
$content = preg_replace('/<h2(.*?)<\/h2>/si', '<p class="heading-2"$1</p>', $content);
$content = preg_replace('/<h3(.*?)<\/h3>/si', '<p class="heading-3"$1</p>', $content);
$content = preg_replace('/<h4(.*?)<\/h4>/si', '<p class="heading-4"$1</p>', $content);
$content = preg_replace('/<h5(.*?)<\/h5>/si', '<p class="heading-5"$1</p>', $content);
$content = preg_replace('/<h6(.*?)<\/h6>/si', '<p class="heading-6"$1</p>', $content);

正如你所看到的,这段代码非常困惑,如果我能把它压缩成一个正则表达式就好了,但我只是缺乏这样做的能力。

我曾考虑将这行代码作为替代方案。
$content = preg_replace('/<h(.*?)<\/h(.*?)>/si', '<p class="heading-$2"$1</p>', $content);

我不确定是否使用上述内容,客户倾向于从其他网站复制内容,将其直接粘贴到他们的新 WYSIWYG 中,我已经看到从 hr 标签到标题标签的任何内容都出现在那里。

我需要的只是上面的单行,除了标签本身只能是 2 个特定字符(因此请确保标签以 H 开头,后跟 [1-6])。

我还要求它添加到 p 标签的类特定于数字用途,例如:heading-1、heading-2。

任何帮助将不胜感激,感谢您的时间。

最佳答案

$content = <<<HTML
<h1 class="heading-title">test1</h1>
<H2 class="green">test2</H2>
<h5 class="red">test</h5>
<h5 class="">test test</h5>
HTML;

$content = preg_replace('#<h([1-6]).*?class="(.*?)".*?>(.*?)<\/h[1-6]>#si', '<p class="heading-${1} ${2}">${3}</p>', $content);

echo htmlentities($content);

结果:
<p class="heading-1 heading-title">test1</p> 
<p class="heading-2 green">test2</p>
<p class="heading-5 red">test</p>
<p class="heading-5 ">test test</p>

现有类的注意事项:
即使您的元素没有现有的类,您也必须添加空类属性 class="" .相反,这不会按预期工作。 :( 更好的解决方案是使用 preg_replace_callback 。然后您可以检查是否存在匹配项并更准确地创建您的 p tags

关于php - 用 <p> 标签和类替换标题 (<h1>, <h2> ...) 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com