我正在使用以下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伪选择器::第一个字母,在这种情况下,我有不同的理由不使用它。
答案 0 :(得分:0)
试试这个:
$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);