Задать вопрос
@draaax

Как полностью обрезать не полное слово в конце строки?

Здравствуйте! Возможно ли если строка > 50 символов полностью обрезать не полное слово в конце?

$length = 50;
$postText = 'Доброго времени суток! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';

function createTitle(string $postText): string {
    global $length;
    
    $welcomeWords = [
        'Доброго времени суток!',  
        'Доброе утро!'
    ];
    $postText = str_replace($welcomeWords, '', $postText);
    
    //получаем позицию первого вхождения
    $pos = strpos($postText, "\n");
    
    if (!$pos) {
        $pos = $length + 1;
    }
    
    $postTitle = trim(mb_substr($postText, 0, $pos, 'utf-8'));
    
    if(mb_strlen($postTitle, 'utf-8') >= $length ) {
    	$postTitle = trim(mb_substr($postText, 0, $length - 3, 'utf-8')) . '..';
    }
    
    return $postTitle;
}

echo createTitle($postText);


Сейчас:
Lorem ipsum dolor sit amet, consectetur adipis..

Хотелось бы:
Lorem ipsum dolor sit amet, consectetur..
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
rim89
@rim89
программист-велосипедист
Если грубо делать, то просто регулярской или explode разбить по пробелам строку и вернуть слова из массива, до того как новая строка достигнет заданной длинны
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽