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

Это очень часто выполняемая операция при работе с 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-символов, не разрывая слов

Комментарии:


  1. Илья Якушин

    Полезная функция!

  2. Vladimir

    Функция полезная, однако не корректно работает с русскими буквами. Вместо substr нужно использовать mb_substr

  3. Юрий

    День Добрый! Как можно обрезать, чтоб такие:
    9.0356, 99.356445, 999.34 и 5 (подобрал случайные числа)

    Получились такими:
    9.03, 99.35, 999.34 и 5

  4. d3n4ik

    спасибо) очень пригодилось для Вирта 1 — сделал ссылку на поиск всех товаров со схожим названием., нюанс был в том, что схожесть была до определённого места, вот до него и обрезается название товара 🙂




YouTube бесплатно навести проклятие порчу