Eliminar espacios en PHP: 3 métodos clave y rendimiento

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo eliminar todos los espacios de un string en PHP: de principiante a experto

\n\n

Imagina esta situación: recibes un número de teléfono de un usuario, pero lo ingresó con montones de espacios, tabulaciones y saltos de línea. O estás parseando un archivo CSV donde los valores están envueltos en espacios extra. ¿Te suena familiar? La pregunta "How do I strip all spaces out of a string in PHP?" en Stack Overflow ha acumulado decenas de miles de visitas, y no es casualidad. Todo desarrollador PHP, tarde o temprano, se enfrenta a la tarea de limpiar una cadena de caracteres de espacios en blanco.

\n\n

Hoy no solo te daremos la respuesta. Realizaremos una verdadera investigación: analizaremos todos los métodos populares, compararemos su rendimiento y descubriremos cuál deberías usar en proyectos reales. Prepara tu IDE, que esto se pone interesante.

\n\n

¿Por qué no deberías usar trim()?

\n\n

Empecemos con un error común. Muchos principiantes escriben:

\n\n
$clean = trim($dirty);
\n\n

Y piensan que el problema está resuelto. Pero trim() solo elimina espacios al inicio y al final de la cadena. Si hay espacios en medio, se quedan ahí. Es como barrer solo la entrada, dejando toda la suciedad en el centro de la habitación.

\n\n

Para nuestra tarea, necesitamos herramientas más potentes. Analicemos tres enfoques principales para eliminar todos los espacios de un string en PHP.

\n\n

Método 1: str_replace — el rey de la simplicidad

\n\n

La forma más obvia y usada es la función str_replace(). Reemplaza todas las ocurrencias de una subcadena por una cadena vacía. Simple como dos más dos:

\n\n
<?php\n$string = "Hola, mundo! ¿Cómo estás?";\n$no_spaces = str_replace(' ', '', $string);\necho $no_spaces; // "Hola,mundo!¿Cómoestás?"\n?>
\n\n

Sin embargo, aquí hay un detalle. str_replace() solo elimina espacios normales (carácter con código 32). ¿Qué pasa con las tabulaciones, los espacios de no separación o los saltos de línea? Para una limpieza completa, tendrás que pasar un array:

\n\n
<?php\n$string = "Hola\\tmundo!\\n¿Cómo estás?";\n$remove = [' ', "\\t", "\\n", "\\r"];\n$no_spaces = str_replace($remove, '', $string);\necho $no_spaces; // "Holamundo!¿Cómoestás?"\n?>
\n\n

Ventajas: alta velocidad, código legible.
\nDesventajas: hay que enumerar explícitamente todos los tipos de espacios.

\n\n

¿Y qué hay de str_ireplace?

\n\n

Algunos desarrolladores confunden str_replace con str_ireplace. La segunda función hace lo mismo, pero sin distinguir mayúsculas de minúsculas. Para los espacios no hay diferencia, ya que un espacio no tiene mayúsculas. Así que usa str_replace sin miedo.

\n\n

Método 2: preg_replace — el poder de las expresiones regulares

\n\n

Cuando necesitas eliminar todos los caracteres de espacio de una sola vez, las expresiones regulares vienen al rescate. La clase de caracteres \\s incluye espacio, tabulación, salto de línea, retorno de carro e incluso tabulación vertical:

\n\n
<?php\n$string = "Hola\\tmundo!\\n¿Cómo estás?";\n$no_spaces = preg_replace('/\\s+/', '', $string);\necho $no_spaces; // "Holamundo!¿Cómoestás?"\n?>
\n\n

Fíjate en el signo más (+) después de \\s. Significa "uno o más caracteres de espacio". Si escribes solo /\\s/, cada carácter de espacio se reemplazará por separado, lo que también funciona, pero es un poco más lento.

\n\n

Ventajas: versatilidad, cubre todos los tipos de espacios.
\nDesventajas: es aproximadamente 2-3 veces más lento que str_replace en grandes volúmenes de datos.

\n\n

Cuándo elegir preg_replace

\n\n

Usa este método si:

\n
    \n
  • No sabes exactamente qué caracteres de espacio pueden aparecer
  • \n
  • Necesitas eliminar todos los caracteres "invisibles", incluidos los raros (como el espacio de no separación Unicode)
  • \n
  • Estás procesando cadenas de fuentes externas (API, parseo de HTML)
  • \n
\n\n

Método 3: strtr — el caballo oscuro

\n\n

Pocos lo saben, pero PHP tiene la función strtr() (

Blogs

Book Recommendations