Как обрезать текст до нужного количества символов PHP

WordPress, Telegram, PHP

При использовании плагина WP Telegram, клиент попросил облагообразить формат поста в Телеге.

Стояла задача сократить текст, отправляемый в Телеграм до 650 символов (иначе резалась часть хэштегов, тк исходные посты на самом сайте были достатчно объемные). В ходе решения стало понятно, что текст режется буквально - и последнее слово с большой долей вероятности выводится частично. 

В итоге найден способ сокращать текст до последнего пробела и слова перестали обрезаться посередине.

Файл: " wptelegram\modules\p2tg\PostData.php" /222 стр./:

$content = mb_strimwidth($content, 0, 650, "");
$content = mb_substr($content, 0, mb_strrpos($content,' '));

Рекомендуется еще указывать кодировку в вышеописанных функциях, но у меня заработало и без нее.

Найдено здесь: https://ru.stackoverflow.com/questions/539028/%D0%9A%D0%B0%D0%BA-%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C-%D1%82%D0%B5%D0%BA%D1%81%D1%82-%D0%B4%D0%BE-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%D0%B0

Спасибо, коллеги!

UPD.

Доп. задача - резать текст до последней точки, если он длинее, чем нужно (700 символов) :

$max_lengh = 700;
$len = strlen($content);
if ($len > $max_lengh) {
$content = mb_strimwidth($content, 0, $max_lengh, "");
$content = mb_substr($content, 0, mb_strrpos($content,'.'));
$content = $content.".";
}

как со мной связаться

Контакты

Если вы хотите поговорить о проекте, проконсультироваться по работе или о чем-то еще, свяжитесь со мной

Web Developer

Anton Timofeev

Hi, My name is Anton Timofeev. I am a Web Developer. I have been working for 20+ years in the field of website development and support.

Hire Me

@timofeev1one

Instagram

Место работы

Санкт-Петербург, Россия

Телефон

+7 921 808 4 777