Php обрезать строку с конца до символа. Обрезаем строку PHP: простые способы. После обрезки ещё и дописываем текст

Функция substr ($string, $start, $length) , где $string - это переменная с текстом, $start - это символ, с которого начинается отсчёт (за первый символ берётся 0), а $length - это количество символов выделенного текста.

$text = "Example and text";

$first = substr($text,0,6); // Показывает 6 символов начиная с 0-ого, самого первого
echo $first; // выведет "Example".

$second = substr($text,8,3); // Показывает 3 символа начиная с 8-ого
echo $second; // выведет "and"
Если не указать параметр Количество символов (2 цифра), то функция выведет все оставшиеся символы

$text = "Example and text";

$third = substr($text,8); // Покажет ВСЕ символы начиная с 8-ого
echo $third; // выведет "and text"

Обрезаем Русский текст с помощью функции mb_substr PHP

Функция mb_substr выполняет те же самые задачи, что и substr , но также способна обрабатывать многобайтные кодировки. Поэтому в случае с русским текстом Вам пригодится именно mb_substr . Работает так же

$text = "Пример текста";

$first = mb_substr($text,0,6,"UTF-8"); // Показывает 6 символов начиная с 0-ого, самого первого
// Внимание! Указывайте кодировку исходного текста! В данном случае utf-8
echo $first; //выведет "Пример"

$second = mb_substr($text,7,6,"UTF-8"); // Показывает 6 символов начиная с 7-ого
echo $second; // выведет "текста"
Обратите внимание на то, что в случае с кириллицей (русский текст) лучше указывать кодировку в конце функции. В примере использован самый популярный вариант - UTF-8

Обрезаем текст с конца

Если Вы хотите обрезать текст с конца, то для этого укажем отрицательное число для переменной, обозначающей с какого символа начинается вычленение текста

$text = "Sprite and Fanta";

$first = substr($text,-6,5); // Показывает 5 символов начиная с 6-ого с конца
echo $first; //выведет "Fant"

После обрезки ещё и дописываем текст

После обрезки переменной с текстом дописываем в конец дополнительный текст

$example = "Text text text text";

$example = substr($example,0,9); // Показывает 9 символов начиная с 0-ого, самого первого
$example .= " more...";
echo $example; //выведет "Text text more..."
Можно наоборот, запись сделать в начале, а потом уже обрезанный текст

$text = "Uncle ";

$example = "George and Michael";
$example = substr($example,0,6); // Показывает 6 символов начиная с 0-ого, самого первого
$text .= $example;
echo $text; //выведет "Uncle George"

Обрезка текста до первого пробела

$text = "Hello world!";
echo substr($text, 0, strpos($text, " ")); // Выведет "Hello"

Готовая функция PHP обрезки текста по Словам PHP

function cut($string, $length){
$string = mb_substr($string, 0, $length,"UTF-8"); // обрезаем и работаем со всеми кодировками и указываем исходную кодировку
$position = mb_strrpos($string, " ", "UTF-8"); // определение позиции последнего пробела. Именно по нему и разделяем слова
$string = mb_substr($string, 0, $position, "UTF-8"); // Обрезаем переменную по позиции
return $string;
}

$text = "Северная война закончилась в 1721 году";
echo cut($text, 17); // выведет "Северная война", без части слова "закончилась"

Можно обрезать по словам через массив...

$text = "Microsoft был основан Биллом Гейтсом ещё в далёком 1975 году.";

$array = explode(" ",$text); // перерабатываем строку в массив
$array = array_slice($array,0,5); // выбираем первые 5 слов-элементов
$newtext = implode(" ",$array); // массив снова перерабатываем в строку

Echo $newtext;//Выведет "Microsoft был основан Биллом Гейтсом"

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


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

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

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