Адаптивна верстка сайту передбачає адекватне зміна його сторінок в залежності від пристрою, який використовує відвідувач. Якщо стосовно блокових і рядкових елементів майже все піддається автоматизації» засобами CSS і jаvascript, то при формуванні контенту і використанні баз даних без серверної сторони важко обійтися. Зазвичай обрізаємо рядок на 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() - тобто замінивши одне входження символів на інше - можна досягти подібного ефекту.
Динаміка і обсяг інформації, яку необхідно обробити - це насамперед адекватне рішення, а не застосування однієї спеціальної функції.