W3docs

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ámetroDescripción
$stringLa cadena de entrada a recortar.
$charactersOpcional. 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ácterSignificado
" "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:

php— editable, runs on the server

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";     // Section

Puedes 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]**", "*[]"); // Note

Ten 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"); // Hello

trim() vs ltrim() vs rtrim()

trim() actúa en ambos extremos. Cuando solo quieres uno, usa sus funciones hermanas:

FunciónRecorta 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";  // ...data

Caso 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() o preg_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().

Práctica

Práctica
¿Qué hace la función trim() de PHP?
¿Qué hace la función trim() de PHP?
Was this page helpful?