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, "!?") . "'";'Пример строки'
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.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-строки от завершающих разделителей:
$csv_line = "яблоко,апельсин,банан,,";
$cleaned = rtrim($csv_line, ",");
echo $cleaned;яблоко,апельсин,банан
Удаление нескольких подряд идущих разных символов из конца строки:
$str = "Текст с разными символами!!!???";
echo rtrim($str, "!?");Текст с разными символами
Использование диапазона символов (PHP 7.3+):
$str = "Строка123";
echo rtrim($str, "0..9");Строка
Обработка строк с управляющими символами:
$str = "Строка с табуляцией\t";
echo "'" . rtrim($str) . "'";'Строка с табуляцией'
Удаление только заданных символов без пробельных:
$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('Пример строки ');'Пример строки'