Я знаю различные способы усечения строки HTML до определенной длины, включая / не включая теги HTML, как часть результата и / или усечение при сохранении целых слов и еще чего-то. Моя проблема, однако, в том, что строка содержит специальные символы, такие как – или &
Мне нужно усечь строку до 100 символов (или несколько меньше, если она в противном случае обрезается в середине специального символа). Прямо сейчас у меня есть функция:
$result= truncateIfNecessary(strip_tags($fullText), 100); //ignore HTML tags function truncateIfNecessary($string, $length) { if(strlen($string) > $length) { return substr($string, 0, $length).'...'; } else { return $string; } }
Но если строка – это что-то вроде text text – text text text – text (отображается на странице как: text text - text и $length падает в – он возвращает text text &nda... который отображается точно так, когда мне понадобится его, чтобы вернуть text text...
РЕДАКТИРОВАТЬ:
(опубликовано как ответ)