我使用以下preg_replace代码在段落的第一个字母周围添加-Tag(在Wordpress中):
<?php
ob_start();
the_content();
$content = ob_get_clean();
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])@', '<p>$1<span class="pst-Dropcap">$2</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伪选择器::第一个字母,我有不同的理由在这种情况下不使用它。
试试这个 :
$content = preg_replace('@<p>\s*((?:<[^<>]+>\s*)*)([^<>\s])([^<>\s]*)@', '<p>$1<span class="pst-Dropcap">$2</span><span class="pst-First_Word">$3</span>', $content, 1);