trim()
La función trim() en PHP elimina espacios en blanco o caracteres definidos al inicio y al final de una cadena. En este artículo lo explicamos.
Introducción
La función trim() en PHP elimina los espacios en blanco (u otros caracteres que especifiques) de ambos extremos de una cadena. Es una de las funciones de cadena más utilizadas, ya que el texto proveniente de formularios, archivos y solicitudes HTTP casi siempre llega con espacios, tabulaciones o saltos de línea sobrantes.
Este capítulo cubre la sintaxis, los caracteres que trim() elimina por defecto, cómo eliminar un conjunto de caracteres personalizado, cómo trim() difiere de ltrim() y rtrim(), y los errores más comunes que se deben evitar.
Sintaxis
trim(string $string, string $characters = " \n\r\t\v\x00"): string| Parámetro | Descripción |
|---|---|
$string | La cadena de entrada a recortar. |
$characters | Opcional. El conjunto de caracteres a eliminar. Si se omite, se usa el conjunto de espacios en blanco predeterminado. |
La función devuelve una nueva cadena recortada — no modifica la $string original (las cadenas en PHP se pasan por valor).
Por defecto, trim() elimina estos caracteres de ambos extremos:
| Carácter | Significado |
|---|---|
" " | Un espacio ordinario |
"\t" | Una tabulación |
"\n" | Un salto de línea (nueva línea) |
"\r" | Un retorno de carro |
"\0" | El byte NUL |
"\x0B" (\v) | Una tabulación vertical |
Ejemplo básico
Eliminar los espacios iniciales y finales de una cadena:
Los corchetes se imprimen solo para hacer visible el resultado — demuestran que los espacios a ambos lados han desaparecido, mientras que el espacio interior (Hello, world!) se conserva.
Eliminar caracteres personalizados
El segundo argumento permite elegir exactamente qué caracteres eliminar. Es útil para limpiar delimitadores, barras o comillas:
<?php
echo trim("xxxHello worldxxx", "x"), "\n"; // Hello world
echo trim("/var/www/html/", "/"), "\n"; // var/www/html
echo trim("###Section###", "#"), "\n"; // SectionPuedes pasar varios caracteres a la vez — trim() elimina cualquiera de ellos desde cada extremo hasta encontrar un carácter que no esté en el conjunto:
<?php
echo trim("**[Note]**", "*[]"); // NoteTen en cuenta que solo se ven afectados los extremos: los corchetes dentro de la cadena no se tocan, igual que el espacio interior en el primer ejemplo.
Rangos de caracteres con ".."
Dentro del argumento $characters puedes especificar un rango con dos puntos. Por ejemplo, para eliminar caracteres de control ASCII:
<?php
$dirty = "\x01\x02Hello\x03";
echo trim($dirty, "\x00..\x1F"); // Hellotrim() vs ltrim() vs rtrim()
trim() actúa en ambos extremos. Cuando solo quieres uno, usa sus funciones hermanas:
| Función | Recorta desde |
|---|---|
trim() | ambos extremos |
ltrim() | solo el extremo izquierdo (inicio) |
rtrim() | solo el extremo derecho (final) |
<?php
$value = "...data...";
echo trim($value, "."), "\n"; // data
echo ltrim($value, "."), "\n"; // data...
echo rtrim($value, "."), "\n"; // ...dataCaso de uso común: limpieza de entrada del usuario
trim() es más valioso al validar entradas de formularios. Un usuario podría escribir un espacio al final de su correo electrónico o dejar el campo en blanco con solo espacios. Recortar primero hace que esas comprobaciones sean fiables:
<?php
$username = " alice ";
$username = trim($username);
if ($username === "") {
echo "Username is required.";
} else {
echo "Welcome, " . $username . "!"; // Welcome, alice!
}Sin la llamada a trim(), un valor de " " (solo espacios) pasaría una comprobación if (!empty($username)) aunque efectivamente esté vacío.
Errores comunes
- Devuelve un valor; no muta.
trim($string);por sí solo no hace nada útil — debes asignar el resultado:$string = trim($string);. - El conjunto personalizado es una lista, no una subcadena.
trim("Hello", "Helo")elimina cada carácter inicial/final que aparece en"Helo", no la palabra literal — por lo que puede consumir más de lo esperado. - Caracteres multibyte.
trim()opera sobre bytes, no puntos de código Unicode. Para eliminar espacios en blanco multibyte, usa un conjunto personalizado o una expresión regular. - Solo afecta a los extremos. Para eliminar caracteres en cualquier parte, usa
str_replace()opreg_replace().
Conclusión
La función trim() es la herramienta principal para limpiar los extremos de una cadena — espacios en blanco por defecto, o cualquier conjunto de caracteres que proporciones. Combinada con sus funciones hermanas unilaterales ltrim() y rtrim(), hace que la validación de entradas y la normalización de cadenas sean simples y predecibles.
Para seguir aprendiendo sobre el manejo de cadenas en PHP, consulta PHP Strings, str_replace(), explode() y str_pad().