首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每一段中分割句子,用跨度来包装

在每一段中分割句子,用跨度来包装
EN

Stack Overflow用户
提问于 2015-11-04 17:28:09
回答 2查看 138关注 0票数 1

我用它把文章分成几个句子,这样我就可以在鼠标上方突出显示每个句子:

代码语言:javascript
复制
$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;

我的问题是,在每一段的末尾,都有一个双重时期。看起来会是这样的:

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

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

EN

回答 2

Stack Overflow用户

发布于 2015-11-04 18:23:28

段中的最后一句可能在句号之后没有空格,所以它被保留了,并且在跨度中添加了另一句。

试着删除段落中的最后一个句点,替换:

代码语言:javascript
复制
$p_text = explode('. ', $p);

通过以下方式:

代码语言:javascript
复制
$p_text = explode('. ', trim($p, '.'));
票数 0
EN

Stack Overflow用户

发布于 2015-11-04 17:31:52

代码语言:javascript
复制
$highlight_text = trim($highlight_text, ' .');
echo $highlight_text;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33528240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档