修改 preg_replace 为第一个字母和第一个单词添加跨度
Modify preg_replace to add span to both first letter and first word
我正在使用以下 preg_replace 代码在段落的第一个字母周围添加一个标记(在 Wordpress 中):
<?php
ob_start();
the_content();
$content = ob_get_clean();
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])@', '<p><span class="pst-Dropcap"></span>', $content, 1);
echo $content;
?>
结果类似于:
<p><span class="pst-Dropcap">H</span>ello world.</p>
我想扩展这段代码,以便它用不同的标签跨越单词的其余部分:
<p><span class="pst-Dropcap">H</span><span class="pst-First_Word">ello</span> world.</p>
如何实现?
我知道 CSS 伪选择器 ::first-letter,在这种情况下我有不同的原因不使用它。
试试这个:
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])([^<>\s]*)@', '<p><span class="pst-Dropcap"></span><span class="pst-First_Word"></span>', $content, 1);
我正在使用以下 preg_replace 代码在段落的第一个字母周围添加一个标记(在 Wordpress 中):
<?php
ob_start();
the_content();
$content = ob_get_clean();
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])@', '<p><span class="pst-Dropcap"></span>', $content, 1);
echo $content;
?>
结果类似于:
<p><span class="pst-Dropcap">H</span>ello world.</p>
我想扩展这段代码,以便它用不同的标签跨越单词的其余部分:
<p><span class="pst-Dropcap">H</span><span class="pst-First_Word">ello</span> world.</p>
如何实现?
我知道 CSS 伪选择器 ::first-letter,在这种情况下我有不同的原因不使用它。
试试这个:
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])([^<>\s]*)@', '<p><span class="pst-Dropcap"></span><span class="pst-First_Word"></span>', $content, 1);