Обрезать последние символы в строке 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() - то есть заменив одно вхождение символов на другое - можно достичь подобного эффекта.

Динамика и объем информации, которую необходимо обработать - это прежде всего адекватное решение, а не применение одной специальной функции.