W3docs

php_strip_whitespace()

Aprende a usar la función php_strip_whitespace() de PHP para eliminar comentarios y espacios en blanco innecesarios de archivos fuente.

La función PHP php_strip_whitespace() lee un archivo fuente PHP y devuelve su contenido con todos los comentarios y espacios en blanco innecesarios eliminados — exactamente el resultado que obtendrías ejecutando el archivo con php -w desde la línea de comandos. Esta página cubre la sintaxis, qué elimina (y qué no) la función, un ejemplo completo ejecutable, consideraciones de rendimiento y cómo se compara con las funciones de recorte de cadenas con las que se suele confundir.

Sintaxis

php_strip_whitespace(string $filename): string
ParteSignificado
$filenameRuta al archivo PHP que se leerá y procesará.
Valor de retornoUna cadena con el código fuente del archivo sin comentarios ni espacios en blanco redundantes. Devuelve una cadena vacía en caso de error (por ejemplo, si el archivo no existe).

La función no ejecuta el archivo — solo tokeniza su código fuente. Tampoco modifica el archivo original en disco; devuelve el código procesado como una nueva cadena, dejándote decidir qué hacer con él.

Qué se elimina

php_strip_whitespace() utiliza el propio tokenizador de PHP, por lo que procesa el código con pleno conocimiento de la sintaxis PHP — nunca rompe tu código eliminando espacios en blanco que sean significativos. Concretamente, elimina:

  • Todos los estilos de comentarios: // línea, # línea, y /* bloque */ (incluyendo /** docblocks */).
  • Espacios en blanco redundantes entre tokens, reduciendo secuencias de espacios, tabulaciones y saltos de línea.

Tiene cuidado de preservar los espacios en blanco dentro de literales de cadena y cualquier contenido fuera de las etiquetas <?php … ?> (HTML simple), porque eliminarlos cambiaría la salida del programa.

Cómo usar php_strip_whitespace()

Pasa la ruta del archivo que quieres procesar. El siguiente ejemplo escribe un archivo pequeño y luego lo procesa para que puedas ver la diferencia:

<?php
// Create a sample file with comments and generous spacing.
$source = <<<'PHP'
<?php

// Greet the visitor.
function greet(string $name): string
{
    /* Build the message */
    return "Hello,   $name!";   // spaces inside the string are kept
}

echo greet("World");
PHP;

file_put_contents('sample.php', $source);

// Strip comments and whitespace.
$stripped = php_strip_whitespace('sample.php');

echo $stripped;

Los comentarios y las líneas en blanco adicionales desaparecen, mientras que los espacios dentro de la cadena "Hello, $name!" permanecen intactos, porque cambiarlos alteraría el comportamiento del programa.

Si no se puede leer el archivo, la función devuelve una cadena vacía en lugar de lanzar un error fatal:

<?php
$result = php_strip_whitespace('does-not-exist.php');

var_dump($result === ''); // bool(true)

Cuándo usarla

  • Preparar una versión de producción. Eliminar comentarios y espacios en blanco reduce el tamaño de los archivos fuente y disminuye ligeramente el tiempo de análisis en cargas en frío (con una caché de opcode como OPcache habilitada, esa ventaja se absorbe en gran medida tras la primera solicitud).
  • Ofuscar código distribuido. Eliminar comentarios y docblocks hace que el código distribuido sea menos autodocumentado — una forma ligera, no segura, de ofuscación.
  • Inspeccionar la salida tokenizada. Es una forma rápida de ver el código fuente de un archivo sin sus comentarios.

Consideraciones de rendimiento

Usa php_strip_whitespace() solo en las copias de producción de tus archivos, nunca en tu código fuente de trabajo. Durante el desarrollo, los comentarios y los espacios en blanco hacen que el código sea legible, depurable y mantenible; eliminarlos en su lugar desperdiciaría todo eso. El enfoque estándar es mantener el código comentado bajo control de versiones y generar copias procesadas como parte de un paso de compilación/despliegue.

Ten en cuenta que con OPcache (incluido y habilitado por defecto en PHP moderno), el bytecode compilado se almacena en caché tras la primera solicitud, por lo que el ahorro en tiempo de análisis derivado del procesamiento es marginal. La reducción de tamaño es el beneficio más fiable.

php_strip_whitespace() vs. trim()

Estas funciones no están relacionadas a pesar de sus nombres similares — una fuente común de confusión:

FunciónOpera sobreElimina
php_strip_whitespace()un archivo fuente PHPcomentarios + espacios en blanco redundantes del código fuente
trim()un valor de cadenaespacios en blanco al inicio y al final de una cadena
ltrim() / rtrim()un valor de cadenaespacios en blanco en uno solo de los extremos

Si tu objetivo es limpiar una cadena (como la entrada de un formulario), usa trim(), no php_strip_whitespace().

Funciones relacionadas

  • file_get_contents() — lee el contenido sin procesar de un archivo sin eliminar nada.
  • readfile() — lee un archivo y lo escribe directamente en el búfer de salida.
  • highlight_string() — el objetivo opuesto: renderiza código fuente PHP con resaltado de sintaxis.
  • Comentarios en PHP — las sintaxis de comentarios que esta función elimina.

Conclusión

php_strip_whitespace() devuelve una copia de un archivo fuente PHP sin comentarios ni espacios en blanco, pasándolo por el tokenizador de PHP, por lo que reduce el tamaño de los archivos de forma segura sin romper código válido. Resérvala para versiones de producción, recuerda que trabaja con archivos (no con cadenas) y no la confundas con trim().

Práctica

Práctica
¿Cuál es la funcionalidad de la función 'trim()' de PHP al emplearse en programas?
¿Cuál es la funcionalidad de la función 'trim()' de PHP al emplearse en programas?
Was this page helpful?