Я использую это, чтобы разделить статьи на отдельные предложения, чтобы я мог выделить каждое предложение при наведении мыши:
$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;
Моя проблема заключается в том, что в конце каждого абзаца существует двойной период. Он будет выглядеть примерно так:
Приговор один. Предложение два. Предложение три. ,
Ничто из этого не удаляет это конечное пространство + период с конца каждого абзаца, и я не могу понять, как он применяется.
Последнее предложение в абзаце, вероятно, не имеет места после периода, поэтому оно сохраняется, и вы добавляете еще один в промежутке.
Попробуйте обрезать последний период в абзаце, заменив:
$p_text = explode('. ', $p);
С:
$p_text = explode('. ', trim($p, '.'));
$highlight_text = trim($highlight_text, ' .');
echo $highlight_text;