rtrim()
Artículo sobre la función PHP rtrim(), usada para eliminar espacios en blanco (u otros caracteres) del final de una cadena de texto.
La función PHP rtrim() elimina espacios en blanco — o cualquier otro carácter que especifiques — del extremo derecho de una cadena. ("r" corresponde a right, derecha en inglés.) Devuelve una nueva cadena recortada y deja la original intacta, ya que las cadenas se pasan por valor en PHP.
Esta página cubre la sintaxis, qué caracteres se eliminan por defecto, cómo proporcionar una máscara de caracteres personalizada (incluyendo rangos), y cuándo rtrim() es la herramienta adecuada frente a sus funciones relacionadas ltrim() y trim().
Sintaxis
rtrim(string $string, string $characters = " \n\r\t\v\x00"): string| Parámetro | Requerido | Descripción |
|---|---|---|
$string | Sí | La cadena de entrada a recortar. |
$characters | No | Una lista de caracteres a eliminar del final. Si se omite, se usa el conjunto de espacios en blanco predeterminado. |
Valor de retorno: la cadena recortada. La función nunca modifica $string en su lugar.
Caracteres eliminados por defecto
Cuando llamas a rtrim() con un solo argumento, elimina estos caracteres finales:
| Carácter | Significado |
|---|---|
" " (0x20) | Espacio ordinario |
"\t" (0x09) | Tabulación |
"\n" (0x0A) | Salto de línea |
"\r" (0x0D) | Retorno de carro |
"\0" (0x00) | Byte NUL |
"\v" (0x0B) | Tabulación vertical |
Ten en cuenta que este conjunto predeterminado no incluye otros espacios en blanco Unicode como el espacio sin separación (\xA0); para eliminarlos debes listarlos explícitamente en la máscara.
Eliminación de espacios en blanco al final
El uso más común es limpiar espacios, tabulaciones y saltos de línea al final — por ejemplo, después de leer una línea de un archivo o al sanear la entrada de un formulario.
El símbolo | marca dónde termina ahora la cadena, para que puedas ver que los espacios finales han desaparecido:
Hello World!|Los saltos de línea y las tabulaciones se manejan de la misma manera:
<?php
$line = "value\t\r\n";
echo rtrim($line) . '|'; // value|
?>Recortar caracteres específicos con una máscara
Pasa un segundo argumento para eliminar un conjunto personalizado de caracteres en lugar de espacios en blanco. Cada carácter listado en la máscara se elimina del final, repetidamente, hasta alcanzar un carácter que no esté en la máscara.
<?php
echo rtrim('Hello World...', '.') . "\n"; // Hello World
echo rtrim('/path/to/dir///', '/') . "\n"; // /path/to/dir
echo rtrim('cleanup.txt.bak', '.bak') . "\n"; // cleanup.txt — strips any of '.', 'b', 'a', 'k'
?>La tercera línea es una trampa común: la máscara es un conjunto de caracteres individuales, no una subcadena. '.bak' significa "eliminar cualquiera de los caracteres ., b, a, k", por lo que sigue eliminando hasta llegar a la t en txt. Si necesitas eliminar una cadena de sufijo literal, usa str_replace() o substr() en su lugar.
Rangos de caracteres
Puedes expresar un rango contiguo con .. entre dos caracteres — muy útil para eliminar todos los dígitos o letras finales:
<?php
echo rtrim('item42', '0..9') . "\n"; // item — strips trailing digits 0-9
?>rtrim() vs ltrim() vs trim()
Estas tres funciones comparten la misma firma y las mismas reglas para la máscara de caracteres; solo difieren en qué lado de la cadena afectan:
| Función | Recorta desde |
|---|---|
ltrim() | Solo el lado izquierdo (inicio) |
rtrim() | Solo el lado derecho (final) |
trim() | Ambos extremos |
Usa rtrim() específicamente cuando los espacios al inicio son significativos pero los espacios al final son ruido — por ejemplo, al preservar la indentación mientras se eliminan los artefactos de fin de línea.
Resumen
rtrim()elimina espacios en blanco (o un conjunto de caracteres personalizado) del final de una cadena y devuelve el resultado.- Sin segundo argumento, elimina espacio, tabulación, salto de línea, retorno de carro, NUL y tabulación vertical.
- La máscara opcional es un conjunto de caracteres, no un sufijo — para eliminar un final literal, usa
str_replace(). - Usa
ltrim()para el inicio ytrim()para ambos extremos.