Адаптивная верстка сайта предполагает адекватное изменение его страниц в зависимости от устройства, которое использует посетитель. Если в отношении блочных и строчных элементов почти все поддается «автоматизации» средствами CSS и JavaScript, то при формировании контента и использовании баз данных без серверной стороны трудно обойтись.
Обычно обрезаем строку на PHP, когда элемент HTML верстки имеет ограничение на количество символов, которые видимы, но это частная задача.
Традиционное решение
Одна из самых популярных и часто используемых функций - substr(). В нее передается два или три параметра:
- исходная строка; позиция начала ($iPos); длина вырезаемой подстроки ($iLen).
Последний параметр можно не указывать. Если указано только два параметра: результатом substr() будет подстрока, от позиции начала ($iPos) до конца исходной строки. Если было передано три параметра, то обрезаем строку PHP от позиции начала ($iPos) до указанной длины ($iLen).
Выбрать только начало строки посредством этой функции возможно, когда первый параметр равен нулю. Если исходная позиция отрицательна, то началом, с которого обрезаем строку, PHP будет считать символ в позиции $iPos от конца строки. Нумерация символов в строке осуществляется с нуля.
Специальная функция
Задачу «обрезаем строку» PHP рассматривает (в широком смысле) в контексте: с обеих сторон. Исторически - это функция trim(), которая имеет целью удалить незначащие символы:
- пробелы; переводы строк; возврат каретки; табуляцию; нулевые символы
с обоих концов строки. Это очень востребованная функция, особенно при работе с базами данных, выборка из которых часто содержит много пробелов. При использовании функции explode() также часто получаются лишние символы с начала и конца строки.
Однако далеко не все разработчики используют функцию trim() в полную силу. Для задачи «обрезаем строку» PHP предлагает использовать второй параметр функции, где можно указать любой набор символов, которые следует ликвидировать из исходной строки.
Существенно, что символы удаляются только с начала и с конца исходной строки. Важно, что манипулируя масками удаляемых символов и последовательностью подзадач.
- Сначала обрезаем строку на PHP по одной маске. Потом по другой. Потом по третьей.
В результате последовательности вариантов применения одной функции обрезаем текст на PHP так, как это требуется для решения поставленной задачи.
Нестандартные способы
Если не рассматривать весь спектр строчных функций языка, то пара функций explode()/implode() и функция str_replace() позволяют решать нестандартные задачи «резки» строчной информации.
Результат запроса MySQL всегда формален в структуре выдаваемой информации, а содержание полей (элементов) результата всегда определяется источником, то есть разработчиком, который проектировал базу данных.
Это частный пример, но точно отвечающий на вопрос: как в PHP обрезать строку, когда строк много. Функция trm() - частность, а ее история определена задачами, когда информации было не так много, а в потребности отрезать что-то кроме незначащих символов не было необходимости.
Сегодня информация циркулирует большими объемами и резать построчно не только нет необходимости, но и нерационально.
Разделение на составляющие - тоже вариант, как обрезать строку. PHP автоматически по explode() разрежет один большой текст на множество нужных строк. Применив функцию str_replace() - то есть заменив одно вхождение символов на другое - можно достичь подобного эффекта.
Динамика и объем информации, которую необходимо обработать - это прежде всего адекватное решение, а не применение одной специальной функции.