Я пытаюсь поместить эллипсис (& hellip;), чтобы сократить длинные описания и хотеть иметь границы слов.Эллипсис после определенного числа или символов с границами слов
Вот мой текущий код eval.in:
# Assume $body is a long text.
$line = $body;
if(strlen($body) > 300 && preg_match('/^.{1,300}\b/su', $body, $match)) {
$line = trim($match[0]) . "…";
}
echo $line;
Это на самом деле работает довольно хорошо, и мне нравится, за исключением того, что бывают времена, когда граница слово имеет знаки препинания после него.
Если я использую код выше, я получаю результаты, подобные следующим:
This is a long description…
или I have punctuations,…
. Я хотел бы удалить пунктуацию после последнего слова, прежде чем положить многоточие.
Помощь?
Попробуйте сопоставить конечную пунктуацию с ''/^ (. {1,300}) \ b \ p {P} */su'' и использовать только 'trim ($ match [1]). "& Hellip;"; '. –
просто используйте wordwrap –
@ WiktorStribiżew Не работает - [eval.in] (https://eval.in/508404) –