Обрізати останні символи у рядку php. Функції роботи з рядками на PHP. PHP функція strtolower - переводить рядок у нижній регістр

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


Динаміка та обсяг інформації, яку необхідно обробити – це насамперед адекватне рішення, а не застосування однієї спеціальної функції.

Он-лайн консультація з питань супроводу сайту в Ульяновську: ICQ # 179104682

Як обрізати кириличний рядок за допомогою PHP

Дата розміщення статті: 01.06.2014

Створення сайту в Ульяновську із серйозним функціоналом та взаємодією з базами даних дуже часто вимагає, щоб певний рядок не перевищував певного заданого обсягу. Це може знадобитися, наприклад, для обмеження кількості символів, що передаються серверу баз даних за допомогою поля input, для відображення на сторінці сайту лише частини рядка (наприклад, при формуванні рівних висот анонсів новин у списку) і для багатьох інших завдань.

Перше, на що натикаються програмісти-початківці - PHP функція substr. Вона дійсно використовується для обрізання рядків та синтаксис її нескладний substr(string, int start [, int length]), де int start – початковий символ з якого потрібно почати різати рядок, а необов'язковий параметр int length – кількість символів, які потрібно відрізати. Однак, для недосвідченого програміста вона може здатися дивною, якщо він намагається використовувати її для PHP обрізки рядка з кирилицею. В результаті роботи substr з кириличним рядком на кінці обрізаного рядка може з'явитися знак питання, або знак питання в ромбіку, а загальна кількість вирізаних символів чомусь у два рази менша від того, що було задано в параметрі int length. Чому так відбувається?

Справа в тому російськомовні символи в UTF-8 мають розмір 2 байти, а латинські символи всього 1 байт. PHP функція substr ріже рядок саме за байтами, а не за символами. Якщо рядок складається з латинських символів, нічого дивного немає, оскільки число символів збігається з числом байтів. А при роботі з кирилицею, де кожен символ займає 2 байти, параметр int length запросто може потрапити на «середину» символу, і в результаті наприкінці вирізаного рядка при виведенні ми побачимо той злощасний знак питання в ромбіку.

Як правильно вирізати частину рядка з кирилицею?

Вирішення цієї проблеми насправді дуже просте. Для правильної PHP обрізки рядка, що містить кириличні символи, потрібно використовувати PHP функцію iconv_substr

Синтаксис функції нескладний:

iconv_substr (string, int start [, int length [, charset]])

Приклад для обрізання російськомовного рядка до 80 символів з кодуванням UTF-8 за допомогою iconv_substr:

$new_string = iconv_substr ($string, 0, 80, “UTF-8”);

Цифра нуль у прикладі означає, що відлік 80 символів починається з початку рядка.

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

Динаміка та обсяг інформації, яку необхідно обробити – це насамперед адекватне рішення, а не застосування однієї спеціальної функції.