Feb 21

Las primeras pruebas del compactador de HTML,JavaScript y CSS integrado en zenphp ,para su uso en la clase zen_plantilla está siendo todo un éxito, aunque el algoritmo es sencillo,ya que es usado para compactar/comprimir los espacios en blanco y demás caracteres sobrantes, puede reemplazarse dicha llamada por otra función como la de la librería: minify.

Un programa de ejemplo es tan sencillo como lo siguiente:

 

<?php
require_once 'zenphp/clases/clase_zen_compactador.php';
$html = file_get_contents('http://www.elpais.es/');
$tamano_antes = mb_strlen($html, '8bit');
$compactador = new zen_compactador(array(
 'mostrar_buffer' => false
));
$html = $compactador->destructor($html);
$tamano_despues = mb_strlen($html, '8bit');
echo 'Con los espacios en blanco eliminados, el tamaño del fichero HTML se reduce de '.
    round($tamano_antes/1024, 2).
    'KB a '.
    round($tamano_despues/1024, 2).
    'KB,ahorramos '.round((1-($tamano_despues/$tamano_antes))*100, 2).
    '%<br />-----------------<br /><br />'.
    $html; 
?>

La salida obtenida es:
——————
Con los espacios en blanco eliminados, el tamaño del fichero HTML se reduce de 133.52KB a 111.55KB,ahorramos 16.46%
—————–

podeis comprobarlo :)
Si no teneis acceso afuera desde el servidor por problemas de firewall, podeis guardar la web a mano o con PERL en un fichero y luego abrirla con

$html = file_get_contents('p1.html');

No necesitamos nada más que obtener la clase desde el repositorio para hacer la prueba XD

Compártelo

2 Respuestas to “Primeras pruebas con el compactador de zenphp”

  1. miguel serrano Dice:

    Una duda, a ver si me puedo “aprovechar” de tu trabajo :)

    Si entiendo bien, comprimes la cache que se manda al navegador para que la web pese menos. ¿La descompresión se hace luego en el cliente con Javascript o algo así?

    Un saludo,
    Miguel

  2. juaxix Dice:

    Hola Miguel, pues mira, primero se carga el fichero (o la url), eso se guarda en un buffer, de ahi separas los elementos que no quieres procesar para quitar los espacios con funciones basadas en expresiones regulares y después se compacta el resto, se recuperan los elementos iniciales y se comprime para enviarse, la última parte es opcional porque el mismo servidor usa gzip si en las cabeceras lo especificas, apache se encarga de ello, a la clase le queda esa parte, comprimir lo que se ha compactado con gzip, no está hecho porque en zenphp se usan dichas cabeceras y ahora me centro más en otra parte, por ejemplo el scaffolding que lo tengo pendiente…no puedo obligar a que el cliente reciba/envie código a comprimir o compactar con javascript porque se puede deshabilitar y esta clase es algo opcional, por la carga que supone…no me enrrollo más =)

Deja tu comentario

Close
E-mail It