Пост

Обрезать строку в php

Способы как можно обрезать строку в php на заданное количество символов

Обрезать строку в php

Частая операция с которой сталкивается программист - это обрезание строки на определенное количество символов.

Например, исходная строка и строка до которой ее нужно обрезать.

Часто работаю именно с кирилицей, поэтому рассмотрю именно ее.

1
2
Строка которую нужно обрезать
Строка кот

Способ 1 - просто цикл

Решение в лоб, это перебрать строку по-символьно, например:

1
2
3
4
5
6
7
8
9
10
11
12
$str = 'Строка которую нужно обрезать';
$i = 0;
$result = '';
while ($i < mb_strlen($str, 'UTF-8')) {
    if ($i < 10) {
        // Вытаскиваем один символ по указанному ключу в строке
        $result .= mb_substr($str, $i, 1, 'UTF-8');
    }
    $i++;
}

$result; // Строка кот

Получили нужный нам результат, но выглядит громоздко, попробуем улучшить решение.

Способ 2 - mb_str_split

Воспользуемся функцией mb_str_split, которая преобразует строку в массив.

1
2
3
4
5
6
7
8
9
$str = 'Строка которую нужно обрезать';
$result = '';
foreach (mb_str_split($str) as $key => $value) {
    if ($key < 10) {
        $result .= $value;
    }
}

$result; // Строка кот

Уже лучше, но тоже громоздко.

Способ 3 - mb_substr

Теперь воспользуемся mb_substr, которая вернет нужную нам подстроку.

1
2
$str = 'Строка которую нужно обрезать';
$result = mb_substr($str,0,10,'UTF-8'); // Строка кот

Вот, буквально в одну строчку получили нужный результат.

Способ 4 - mb_strimwidth

Воспользуемся mb_strimwidth.

1
2
$str = 'Строка которую нужно обрезать';
$result = mb_strimwidth($str, 0, 10); // Строка кот

Решение в одну строку.

Способ 5 - preg_match

Так же очень много вещей можно сделать с помощью регулярных выражений.

1
2
preg_match('/^[а-яА-Я ]{10}/u',$str,$matches);
$matches[0]; // 'Строка кот'

В нашем случае мы адаптировали регулярку под нашу задачу.

Авторский пост защищен лицензией CC BY 4.0 .

Хотите оптимизировать свой бизнес, нужен сервис, сайт или интеграция.

Бесплатно расчитаю время разработки, предложу решение вашей задачи.