Удаление пробелов из конца строки в PHP

Стандартная функция rtrim()

Синтаксис

string rtrim ( string $string [ , string $chars = " \t\n\r\0\x0B" ] )

Аргументы

  1. $string — обрезаемая строка;
  2. $chars — список символов для удаления; если не передан, то удаляются следующие символы:
    • " " (ASCII 32 (0x20)) — пробел,
    • "\t" (ASCII 9 (0x09)) — символ табуляции,
    • "\n" (ASCII 10 (0x0A)) — символ перевода строки,
    • "\r" (ASCII 13 (0x0D)) — символ возврата каретки,
    • "\0" (ASCII 0 (0x00)) — NUL-байт,
    • "\x0B" (ASCII 11 (0x0B)) — вертикальная табуляция.

Возвращаемое значение

Возвращает строку string, обрезанную с правого края.

Особенности

  • Функция rtrim() правильно работает с многобайтными строками, если список удаляемых символов является однобайтным. Если же во 2-м аргументе была передана многобайтная строка, то функция уже работает неправильно. И необходимо воспользоваться альтернативной реализацией.
  • Функция чувствительна к регистру.
  • У функции есть псевдоним chop().

Альтернативная функция rtrim()

Исходный код

class StringExtension {

	/**
	 * @param string $string
	 * @param string $chars
	 * @return string
	 */
	public static function trimRight($string, $chars = " \t\n\r\0\x0B") {
		return (string) $chars ? mb_ereg_replace('[' . (string) $chars . ']+$', '', (string) $string) : (string) $string;
	}

}

Аргументы

  1. $string — обрезаемая строка;
  2. $chars — список символов для удаления.

Возвращаемое значение

Возвращает строку string, обрезанную с правого края.

Особенности

  • Функция правильно работает и для многобайтного списка удаляемых символов.
  • Функция чувствительна к регистру.