Это очень часто выполняемая операция при работе с php.
Делается обрезка строки очень просто — есть функция substr
Она принимает три параметра, а именно:
string — исходная строка — строка которую будем резать
start — начальная позиция — позиция с которой будем резать строку
length — длина (необязательный параметр) — длина отрезаемого куска строки
Пользоваться ей очень просто, вот несколько примеров:
Обрезать строку на определенное (n) количество символов:
1 2 3 4 5 | <?php $n = 5; $string = 'hello world!'; echo substr($string, 0, $n); //hello ?> |
Тут все просто, указываем с какого символа хотим обрезать строку, указываем какая длина строки нам нужна, получаем вполне ожидаемый результат.
Обрезать строку на определенное (n) количество символов с конца:
1 2 3 4 5 | <?php $n = -5; $string = 'hello world!'; echo substr($string, 0, $n); //hello w ?> |
Данный пример интересен тем, что в параметр length мы передаем отрицательное значение, и в таком случае функция отсчитывает указанную величину с конца строки.
Получить определенное (n) количество символов с конца строки
1 2 3 4 5 | <? $n = -5; $string = 'hello world!'; echo substr($string, $n); //orld! ?> |
Здесь в параметр start мы передаем отрицательное значение, которое и позволяет нам сделать то, что нам нужно.
Обрезать строку до первого пробела
1 2 3 4 | <?php $string = 'hello world!'; echo substr($string, 0, strpos($string, ' ' )); //hello ?> |
Тут мы в параметр length передаем результат выполнения функции strpos, которая вычисляет позицию первого пробела. Строку можно бить конечно же не только по пробелу, а по любому другому символу.
Обрезать строку до последнего пробела
1 2 3 4 | <?php $string = 'hello world, hello!'; echo substr($string, 0, strrpos($string, ' ' )); //hello world, ?> |
Работает аналогично предыдущему примеру, но только в качестве параметра length передается результат отработки функции strrpos, которая находит последнее вхождение заданного символа, в нашем случае пробела.
И небольшая функция, написанная мной, которая позволяет обрезать текст на N-символов, не разрывая слов
Полезная функция!
Функция полезная, однако не корректно работает с русскими буквами. Вместо substr нужно использовать mb_substr
День Добрый! Как можно обрезать, чтоб такие:
9.0356, 99.356445, 999.34 и 5 (подобрал случайные числа)
Получились такими:
9.03, 99.35, 999.34 и 5
спасибо) очень пригодилось для Вирта 1 — сделал ссылку на поиск всех товаров со схожим названием., нюанс был в том, что схожесть была до определённого места, вот до него и обрезается название товара 🙂