Обрезаем текст с помощью PHP

Обрезаем текст с помощью PHP

В данной статье мы рассмотрим функции PHP, с помощью которых можно обрезать строку с текстом в нужном месте.

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

Рассмотрим функцию substr, с помощью которой мы будем обрезать текст.

substr – возвращает подстроку.

Она имеет следующий формат написания: substr(string, start, length), где string – строка с текстом, start – позиция, с которой нужно начать отсчет (числовое значение, обычно бывает 0), length – нужно количество символов (числовое значение).

Пример #1 (простая обрезка):

$simple = "I think I can explain";
$simple = substr($simple, 0, 7);
echo $simple;

Объяснение кода:

$simple – строка с текстом, который нужно обрезать (string);
0 – символ, с которого нужно начать отсчет, т.е. с самого первого;
7 – количество символов (вместе с пробелами), которое нужно показать, начиная с нулевого (0).

В результате выполнения мы получим «I think» – ровно семь символов, включая пробел.

С помощью данной функции можно обрезать строку с конца. Для этого нужно указать число с отрицательным знаком.

Пример #2 (обрезка строки с конца):

$end = "I think I can explain";
$end = substr($end, -8, 5);
echo $end;

В результате выполнения данного кода мы получим «expl». То есть, мы показываем пять символов с конца строки, начиная с восьмого.

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

Пример #3 (добавление текста после обрезки):

$text = "I think I can explain";
$text = substr($text, 0, 13);
$text .= "…";
echo $text;

В результате выполнение данного кода мы получим «I think I can…».

Если вы захотите обрезать строку, которая содержит текст на русском языке, с помощью substr, то у вас появятся непонятные символы (естественные проблемы с русским текстом). Для того, чтобы исправить данную проблему, нужно использовать mb_substr.

mb_substr – получает часть строки.

Она имеет следующий формат написания: mb_substr(string, start, length, string encoding). Все то же самое, что и в substr. Единственное отличие – это дополнительный параметр, в котором указывается кодировка.

Для примера используем ту же фразу, но только на русском языке.

Пример #4 (обрезка строки на русском языке):

$text_ru = "Я могу всё объяснить";
$text_ru = mb_substr($text_ru, 0, 13, "UTF-8");
$text_ru .= "…";
echo $text_ru;

Как видно из примера, мы указали кодировку UTF-8, и в результате выполнения данного кода получим «Я могу всё об…». Остальные параметры полностью схожи с substr.

Автор урока: редакция REDSTAR
Урок для Вас подготовлен командой сайта red-star.pro.