Другие ответы показывают, как вы можете сделать текст примерно 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