PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

setlocale> <quotemeta
Last updated: Fri, 18 Jul 2008

view this page in

rtrim

(PHP 4, PHP 5)

rtrim — Elimina el espacio en blanco (o más caracteres) del final de una cadena

Descripción

string rtrim ( string $cadena [, string $lista_caracteres ] )

Note: El segundo parámetro se añadió en la versión de PHP 4.1.0

La función devuelve una cadena con los espacios en blanco eliminados del final de la cadena indicada en el parámetro cadena . Si no se emplea el segundo parámetro (lista_caracteres ), la función rtrim() elimina los siguientes caracteres:

  • " " (ASCII 32 (0x20)), un espacio en blanco.
  • "\t" (ASCII 9 (0x09)), un tabulador.
  • "\n" (ASCII 10 (0x0A)), una nueva linea.
  • "\r" (ASCII 13 (0x0D)), un retorno de carro.
  • "\0" (ASCII 0 (0x00)), el byte NUL.
  • "\x0B" (ASCII 11 (0x0B)), un tabulador vertical.

Además, con el parámetro lista_caracteres , se puede especificar la lista de caracteres que se quieren eliminar. El método consiste en enumerar todos los caracteres que se quieren eliminar, con la posibilidad de emplear .. para indicar un rango de caracteres.

Example #1 Ejemplo de rtrim()

<?php

$texto 
"\t\tEn un lugar de la Mancha :) ...  ";
$texto_limpio rtrim($texto);
// $texto_limpio = " En un lugar de la Mancha :) ..."
$texto_limpio rtrim($texto" \t.");
// $texto_limpio = " En un lugar de la Mancha :)"
$datos_normales rtrim($datos_binarios"\x00..\x1F");
// elimina los caracteres ASCII de control que aparecen al final de $datos_binarios 
// (desde el car&aacute;cter de control 0 hasta el 31, ambos inclusive)

?>

Vea tambié trim() y ltrim().



setlocale> <quotemeta
Last updated: Fri, 18 Jul 2008
 
add a note add a note User Contributed Notes
rtrim
harmor
04-Apr-2008 04:05
I'm sure there's a better way to strip strings from the end of strings.

/**
 * 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 > 0 && $offset == strpos($str, $remove, $offset))
    {
        $str = substr($str, 0, $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!!!"
YAS
08-May-2006 06:01
To remove an unwanted character - example "." - if exist or not.

The example above doesn't include the case where there is no "."
If there is not "." at the example above the last word will be deleted.

Have fun with this code.

<?php
$text
= "This string contains. some unwanted characters on the end .";
$text = trim($text);
$last = $text{strlen($text)-1};
if (!
strcmp($last,"."))
{
 
$text = rtrim($text, 'a..z');
 
$text = rtrim($text, '.');
}
?>
gbelanger at exosecurity dot com
17-Feb-2006 02:31
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 :

# 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);
Unimagined at UnaimaginedDesigns dot Com
16-Jan-2005 12:49
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.
todd at magnifisites dot com
19-Aug-2003 06:19
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 '
?>
HW
05-Jun-2003 06:32
$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.
icon-phpnet at phy dot duke dot edu
01-Apr-2002 10:00
Not entirely. Perl's "chomp" will only remove the newline character, while rtrim without the second parameter will remove ALL whitespace. E.g. chomp("blah \n") will return "blah ", while rtrim("blah \n") will return "blah".

setlocale> <quotemeta
Last updated: Fri, 18 Jul 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites