这对我来说是一个很难正确措辞的问题,但我试图在段落之间动态插入一个 ASIDE [具体来说,只是一个“特别感谢”注释]。最初我决定在第二段之后使用 substr_count() 删除它。我正在浮动这个块,所以如果它必须处理的只是文本内容,那么自动换行是没有问题的。但是,如果它与图像或 PRE 或其他任何东西相邻运行,它就会变得不稳定。
无论如何,我想要做的是检测何时第一次出现两个相邻的段落并在它们之间插入我的旁边。IE:
<p> Here is the first paragraph. </p>
<aside> INSERT THIS HERE </aside>
<p> Here is the second paragraph. </p>
想法受到赞赏。
更新:我目前正在使用的 substr_count()。
因为我因为没有显示原始代码而被否决,所以我会在下面发布。我正在使用 Wordpress,但这不是 WP 特定的问题,因为我将 the_content() 作为字符串,计算 P 的出现次数,并在那里插入自定义字段。这最终不是我想要做的,但我想计算两个并发 P 并在其间插入这个字段。它的格式可能很奇怪,当然,当我从我的编辑器中 c/p 时,东西到处都是。
$thanks = get_post_meta(get_the_ID(), 'thanks', true);
if (!$thanks) {
the_content();
}
else {
$show_after_p = 0;
$content = apply_filters('the_content', $post->post_content);
if(substr_count($content, '<p>') > $show_after_p) {
$contents = explode("</p>", $content);
$p_count = 0;
foreach($contents as $content)
{
echo $content;
if($p_count == $show_after_p)
{
?>
<aside class="thanks clearfix">
<p>
<?php echo '<span>Special thanks: </span>'.$thanks; ?>
</p>
</aside>
<?php }
echo "</p>";
$p_count++;
}
}
}
?>
为什么不是 JS? 好吧,javascript 绝对可以做到这一点,但如果我可以在 PHP 中做到这一点,那么 yahtzee。