在每个段落中拆分句子,并用空格换行


split sentences in each paragraph and wrap in span

我用它将文章拆分为单独的句子,这样我就可以在mouseover上突出显示每个句子:

$a_text = str_replace('<p>', '', $a_text);
$a_text = explode('</p>', $a_text); // Separate into paragraphs
foreach($a_text as $p) {
    $p_text = explode('. ', $p); // Only spilt on periods followed by a space to preserve URLs in the article.
    $highlight_text .= '<p>';
    $i = 1;
    foreach($p_text as $text) {
        $highlight_text .= '<span class="highlight" alt="'.$i.'">'.$text.'.</span> '; // Wrap each sentence in the highlight class
        $i++;
    }
    $highlight_text .= '</p>';
}
echo $highlight_text;

我的问题是,每一段的末尾都有一个双句号。它看起来像这样:

第一句。第二句。第三句。

我所做的任何事情都不会删除每一段末尾的尾随空格+句点,我也不知道它是如何应用的。

段落中的最后一句话在句点之后可能没有空格,因此它被保留,您将在span中添加另一句。

尝试通过替换来修剪段落中的最后一个句号:

$p_text = explode('. ', $p);

带有:

$p_text = explode('. ', trim($p, '.'));
$highlight_text = trim($highlight_text, ' .');
echo $highlight_text;