В данной статье мы рассмотрим функции 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.