Rtrim: примеры (PHP)

Полное руководство по функции rtrim в языке PHP
Раздел: Работа со строками
rtrim(string string [, string characters]): string

Функция rtrim() в языке PHP удаляет пробельные символы или другие заданные символы с конца строки. Она часто используется для очистки данных от нежелательных завершающих символов, например при обработке пользовательского ввода или чтении строк из файла.

Аргументы функции

Функция принимает два параметра:

  • $string (обязательный) - обрабатываемая строка.
  • $characters (необязательный) - строка, содержащая символы для удаления. Если параметр опущен, rtrim() удаляет следующие символы: пробел, табуляция, перевод строки, возврат каретки, нулевой байт, вертикальная табуляция.
Примеры использования

Удаление пробельных символов по умолчанию:

$str = "Пример строки   ";
echo "'" . rtrim($str) . "'";
'Пример строки'

Удаление заданных символов:

$str = "Пример строки...";
echo "'" . rtrim($str, ".") . "'";
'Пример строки'

Удаление нескольких разных символов:

$str = "Пример строки!!!???";
echo "'" . rtrim($str, "!?") . "'";
'Пример строки'
Похожие функции PHP

trim() удаляет символы с обоих концов строки. Применяется, когда необходимо очистить строку с начала и конца.

ltrim() удаляет символы только с начала строки. Используется, когда требуется очистка исключительно начальной части строки.

chop() является псевдонимом rtrim() и работает идентично. Использование rtrim() предпочтительнее из-за большей понятности названия.

Типичные ошибки

Передача массива вместо строки приводит к ошибке TypeError в PHP 8+:

$result = rtrim(['test'], 't');
TypeError: rtrim(): Argument #1 ($string) must be of type string, array given

Использование функции для удаления середины строки не работает:

$str = "Пример строки";
echo rtrim($str, "Пример");
'Пример строки'

Удаление символов происходит только с конца строки, поэтому слово "Пример" не удаляется, так как находится в начале.

Изменения в PHP 8

В PHP 8.0 параметры функции стали необязательными, но передача null в качестве строки теперь вызывает ошибку TypeError. В предыдущих версиях null преобразовывался в пустую строку.

$result = rtrim(null);
TypeError: rtrim(): Argument #1 ($string) must be of type string, null given

Начиная с PHP 7.3, в строке символов можно использовать диапазоны символов, например, "0..9" или "a..z".

Расширенные примеры

Очистка CSV-строки от завершающих разделителей:

Пример php
$csv_line = "яблоко,апельсин,банан,,";
$cleaned = rtrim($csv_line, ",");
echo $cleaned;
яблоко,апельсин,банан

Удаление нескольких подряд идущих разных символов из конца строки:

Пример php
$str = "Текст с разными символами!!!???";
echo rtrim($str, "!?");
Текст с разными символами

Использование диапазона символов (PHP 7.3+):

Пример php
$str = "Строка123";
echo rtrim($str, "0..9");
Строка

Обработка строк с управляющими символами:

Пример php
$str = "Строка с табуляцией\t";
echo "'" . rtrim($str) . "'";
'Строка с табуляцией'

Удаление только заданных символов без пробельных:

Пример php
$str = "Пример...   ";
echo "'" . rtrim($str, ".") . "'";
'Пример...   '

Пробелы в конце строки остаются, так как они не указаны в параметре characters.

Аналоги в других языках

Python: Метод str.rstrip(). Удаляет завершающие символы. По умолчанию удаляет пробельные символы.

text = "Пример строки   "
print(repr(text.rstrip()))
'Пример строки'

JavaScript: Метод String.prototype.trimEnd(). Удаляет пробельные символы с конца строки. Не поддерживает указание произвольных символов для удаления.

let text = "Пример строки   ";
console.log(`'${text.trimEnd()}'`);
'Пример строки'

MySQL: Функция RTRIM(). Удаляет только пробелы с конца строки. Не позволяет задавать набор символов.

SELECT RTRIM('Пример строки   ');
'Пример строки'

PHP rtrim function comments

En
Rtrim Strip whitespace (or other characters) from the end of a string