rtrim

(PHP 4, PHP 5)

rtrimУдаляет пробелы (или другие символы) из конца строки

Описание

string rtrim ( string $str [, string $charlist ] )

Эта функция возвращает строку str с удаленными из конца строки пробелами.

Если второй параметр не передан, rtrim() удаляет следующие символы:

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

Список параметров

str

Входная строка.

charlist

С помощью параметра charlist можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

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

Возвращает модифицированную строку.

Список изменений

Версия Описание
4.1.0 Добавлен параметр charlist.

Примеры

Пример #1 Пример использования rtrim()

<?php

$text 
"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";
var_dump($text$binary$hello);

print 
"\n";

$trimmed rtrim($text);
var_dump($trimmed);

$trimmed rtrim($text" \t.");
var_dump($trimmed);

$trimmed rtrim($hello"Hdle");
var_dump($trimmed);

// удаляем управляющие ASCII-символы с конца $binary
// (от 0 до 31 включительно)
$clean rtrim($binary"\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Смотрите также

  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • ltrim() - Удаляет пробелы (или другие символы) из начала строки

Коментарии

Автор:
<?php
$text 
"This string contains some unwanted characters on the end.";
$text1 rtrim($text'a..z');
$text1 rtrim($text1'.');
echo 
$text1// only the '.' is trimmed.
$text2 rtrim($text'a..z.');
echo 
$text2// The whole last word is trimmed.
?>
2003-06-05 21:32:49
http://php5.kiev.ua/manual/ru/function.rtrim.html
This shows how rtrim works when using the optional charlist parameter:
rtrim reads a character, one at a time, from the optional charlist parameter and compares it to the end of the str string. If the characters match, it trims it off and starts over again, looking at the "new" last character in the str string and compares it to the first character in the charlist again. If the characters do not match, it moves to the next character in the charlist parameter comparing once again. It continues until the charlist parameter has been completely processed, one at a time, and the str string no longer contains any matches. The newly "rtrimmed" string is returned.
<?php
 
// Example 1:
 
rtrim('This is a short short sentence''short sentence');
 
// returns 'This is a'
  // If you were expecting the result to be 'This is a short ',
  // then you're wrong; the exact string, 'short sentence',
  // isn't matched.  Remember, character-by-character comparison!
  // Example 2:
 
rtrim('This is a short short sentence''cents');
 
// returns 'This is a short short '
?>
2003-08-19 21:19:12
http://php5.kiev.ua/manual/ru/function.rtrim.html
I needed a way to trim all white space and then a few chosen strings from the end of a string.  So I wrote this class to reuse when stuff needs to be trimmed. 

<?php

class cleaner {

function 
cleaner ($cuts,$pinfo) {
$ucut "0";
$lcut "0";
while (
$cuts[$ucut]) {
$lcut++;
$ucut++;
}
$lcut $lcut 1;
$ucut "0";
$rcut "0";
$wiy "start";

while (
$wiy) {

if (
$so) {
$ucut "0";
$rcut "0";
unset(
$so);
}

if (!
$cuts[$ucut]) {
$so "restart";
} else {
$pinfo rtrim($pinfo);
$bpinfol strlen($pinfo);
$tcut $cuts[$ucut];
$pinfo rtrim($pinfo,"$tcut");
$pinfol strlen($pinfo);

    if (
$bpinfol == $pinfol) {
   
$rcut++;
    if (
$rcut == $lcut) {
    unset(
$wiy);
    }
   
$ucut++;
    } else {
   
$so "restart";
    }
}
}

$this->cleaner $pinfo;
}

}

$pinfo "Well... I'm really bored...<br /><br>&nbsp;    \n\t&nbsp;<br><br /><br>&nbsp;    \r\r&nbsp;<br>\r<br /><br>\r&nbsp;    &nbsp;\n<br>      <br />\t";

$cuts = array('\n','\r','\t',' ',' ','&nbsp;','<br />','<br>','<br/>');

$pinfo = new cleaner($cuts,$pinfo);
$pinfo $pinfo->cleaner;

print 
$pinfo;

?>

That class will take any string that you put in the $cust array and remove it from the end of the $pinfo string.  It's useful for cleaning up comments, articles, or mail that users post to your site, making it so there's no extra blank space or blank lines.
2005-01-16 02:49:26
http://php5.kiev.ua/manual/ru/function.rtrim.html
True, the Perl chomp() will only trim newline characters. There is, however, the Perl chop() function which is pretty much identical to the PHP rtrim()

---

Here's a quick way to recursively trim every element of an array, useful after the file() function :

<?php
# Reads /etc/passwd file an trims newlines on each entry
$aFileContent file("/etc/passwd");
foreach (
$aFileContent as $sKey => $sValue) {
   
$aFileContent[$sKey] = rtrim($sValue);
}

print_r($aFileContent);
?>
2006-02-17 16:31:57
http://php5.kiev.ua/manual/ru/function.rtrim.html
Автор:
I'm sure there's a better way to strip strings from the end of strings.

<?php
/**
 * Strip a string from the end of a string
 *
 * @param string $str      the input string
 * @param string $remove   OPTIONAL string to remove
 * 
 * @return string the modified string
  */
function rstrtrim($str$remove=null)
{
   
$str    = (string)$str;
   
$remove = (string)$remove;   
   
    if(empty(
$remove))
    {
        return 
rtrim($str);
    }
   
   
$len strlen($remove);
   
$offset strlen($str)-$len;
    while(
$offset && $offset == strpos($str$remove$offset))
    {
       
$str substr($str0$offset);
       
$offset strlen($str)-$len;
    }
   
    return 
rtrim($str);   
   
//End of function rstrtrim($str, $remove=null)

echo rstrtrim('Hello World!!!''!')   .'<br />'//"Hello World"
echo rstrtrim('Hello World!!!''!!')  .'<br />'//"Hello World!"
echo rstrtrim('Hello World!!!''!!!') .'<br />'//"Hello World"
echo rstrtrim('Hello World!!!''!!!!').'<br />'//"Hello World!!!"
?>
2008-04-04 18:05:07
http://php5.kiev.ua/manual/ru/function.rtrim.html
I have an obsessive love for php's array functions given how extremely easy they've made complex string handling for me in various situations... so, have another string-rtrim() variant:

<?php

function strrtrim($message$strip) {
   
// break message apart by strip string
   
$lines explode($strip$message);
   
$last  '';
   
// pop off empty strings at the end
   
do {
       
$last array_pop($lines);
    } while (empty(
$last) && (count($lines)));
   
// re-assemble what remains
   
return implode($striparray_merge($lines, array($last)));
}

?>

Astonishingly, something I didn't expect, but: It completely compares to harmor's rstrtrim below, execution time wise. o_o Whee!
2010-01-22 07:36:42
http://php5.kiev.ua/manual/ru/function.rtrim.html
On the recurring subject of string-stripping instead of character-stripping rtrim() implementations... the simplest (with a caveat) is probably the basename() function. It has a second parameter that functions as a right-trim using whole strings:

<?php

echo basename('MooFoo''Foo');

?>

...outputs 'Moo'.

Since it also strips anything that looks like a directory, it's not quite identical with hacking a string off the end:

<?php

echo basename('Zoo/MooFoo''Foo');

?>

...still outputs 'Moo'.

But sometimes it gets the job done.
2013-07-01 12:10:58
http://php5.kiev.ua/manual/ru/function.rtrim.html

    Поддержать сайт на родительском проекте КГБ