Умберто Эко

Как обрезать текст строковой функцией в PHP?

Если вы работаете с PHP, то, скорее всего, вам приходилось сталкиваться с задачей обрезки текста до определенной длины. Это может быть полезно для демонстрации коротких описаний на изображениях или в списках, а также для улучшения пользовательского интерфейса. В этой статье мы расскажем, как обрезать текст с помощью строковых функций в PHP.

Функция substr()

Строковая функция substr() позволяет выделить подстроку из строки, начиная с определенного индекса и до указанной длины. Ее синтаксис выглядит следующим образом:

substr(string $string, int $start, ?int $length = null): string

Где:

Пример использования:

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
$short_text = substr($text, 0, 30) . "...";
echo $short_text; // "Lorem ipsum dolor sit amet..."

Функция mb_substr()

Функция mb_substr() - аналог substr(), но работает с многобайтовыми символами (например, с символами кириллицы). Ее синтаксис:

mb_substr(string $string, int $start, ?int $length = null, string $encoding = mb_internal_encoding()): string

Где:

Пример использования:

$text = "Пример текста на русском языке.";
$short_text = mb_substr($text, 0, 20, "UTF-8") . "...";
echo $short_text; // "Пример текста на ру..."

Функция wordwrap()

Функция wordwrap() позволяет обрезать строку по ширине, то есть разбить длинную строку на строки определенной ширины. Ее синтаксис:

wordwrap(string $string, int $width, ?string $break = "\n", bool $cut = false): string

Где:

Пример использования:

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod vulputate est non varius.";
$wrapped_text = wordwrap($text, 30, "<br>");
echo $wrapped_text;

/* Вывод:
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Sed euismod vulputate est non
varius.
*/

Заключение

Обрезание текста - это полезный функционал, который может применяться во многих сценариях при работе с PHP. Мы рассмотрели три строковые функции, которые способны выполнить эту задачу: substr(), mb_substr() и wordwrap(). Выбор конкретной функции зависит от особенностей ваших данных и требований к форматированию.