@Dizzy221
PHP Программист

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

Есть переменная
$str = 'Слово1, слово2, слово 3, слово 4, слово 5, СлОвО 6';

В строке 51 символ.
Как обрезать эту строку до 20 символов, до учесть, чтобы она не обрезало слово?
То есть в данном случае при обрезании мы получим:
Слово1, слово2, сло
Значит нужно обрезать также то слово которое было обрезано - "сло"
В итоге нужно получить Слово1, слово2
  • Вопрос задан
  • 3645 просмотров
Решения вопроса 1
@glagolew059
frontend developer
$longString = "Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона.";
$truncated = substr($longString,0,strpos($longString,' ',30));


выводит текст обрезая до первого пробела после нужного кол-ва символов
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
Если строка всегда в указанном выше формате, то как вариант:
1) Сделать из строки массив (['Слово1', 'слово2' ...]) с помощью explode
2) Проходить по массиву и формировать новую строку, пока она не превышает кол-во допустимых символов (20)
Ответ написан
coderisimo
@coderisimo
Например ,вот так......

$str = "Слово1, слово2, слово 3, слово 4, слово 5, СлОвО 6";
        $str = mb_substr($str , 0,20);
        $str = preg_replace('/^(.+),(.+)$/','$1',$str);
        echo $str;
Ответ написан
Комментировать
romanko_vn
@romanko_vn
$str = 'Слово1, слово2, слово 3, слово 4, слово 5, СлОвО 6';
$text_crop = mb_substr($str, 0, 20); // Слово1, слово2, слов
$text_crop_format = mb_substr($text_crop, 0, mb_strrpos($text_crop, ' ')); // Слово1, слово2,
echo rtrim($text_crop_format, ','); // Слово1, слово2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы