Другие ответы показать вам, как вы можете сделать текст примерно 340 символов. Если это хорошо для вас, используйте один из других ответов.
Но если вы хотите очень строгий максимум из 340 символов, другие ответы не будут работать. Вы должны помнить, что добавление '...'
может увеличить длину строки, и вам нужно учесть это.
$max_length = 340;
if (strlen($s) > $max_length)
{
$offset = ($max_length - 3) - strlen($s);
$s = substr($s, 0, strrpos($s, ' ', $offset)) . '...';
}
Отметим также, что здесь я использую перегрузку strrpos
, которая принимает смещение для начала поиска непосредственно из правильного места в строке, а не первый укорачивая строку.
Смотреть это работает онлайн: ideone
Что вы хотите сделать если пользователь вводит одно слово длиной 341 символ (без пробелов вообще в сообщении)? –