- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- [1.0] Abilitare REALMENTE la compressione GZIP con Joomla
-
Dai ragazzi... non è assolutamente un fattore di poco conto.
Ecco tutto il codice responsabile:
/**
-
Initialise GZIP
*/
function initGzip() {
global $mosConfig_gzip, $do_gzip_compress;$do_gzip_compress = FALSE;
if ($mosConfig_gzip == 1) {
$phpver = phpversion();
$useragent = mosGetParam( $_SERVER, 'HTTP_USER_AGENT', '' );
$canZip = mosGetParam( $_SERVER, 'HTTP_ACCEPT_ENCODING', '' );$gzip_check = 0; $zlib_check = 0; $gz_check = 0; $zlibO_check = 0; $sid_check = 0; if ( strpos( $canZip, 'gzip' ) !== false) { $gzip_check = 1; } if ( extension_loaded( 'zlib' ) ) { $zlib_check = 1; } if ( function_exists('ob_gzhandler') ) { $gz_check = 1; } if ( ini_get('zlib.output_compression') ) { $zlibO_check = 1; } if ( ini_get('session.use_trans_sid') ) { $sid_check = 1; } if ( $phpver >= '4.0.4pl1' && ( strpos($useragent,'compatible') !== false || strpos($useragent,'Gecko') !== false ) ) { // Check for gzip header or northon internet securities or session.use_trans_sid if ( ( $gzip_check || isset( $_SERVER['---------------']) ) && $zlib_check && $gz_check && !$zlibO_check && !$sid_check ) { // You cannot specify additional output handlers if // zlib.output_compression is activated here ob_start( 'ob_gzhandler' ); return; } } else if ( $phpver > '4.0' ) { if ( $gzip_check ) { if ( $zlib_check ) { $do_gzip_compress = TRUE; ob_start(); ob_implicit_flush(0); header( 'Content-Encoding: gzip' ); return; } } }
}
ob_start();
}
/**
-
Perform GZIP
/
function doGzip() {
global $do_gzip_compress;
if ( $do_gzip_compress ) {
/*
*Borrowed from php.net!
*/
$gzip_contents = ob_get_contents();
ob_end_clean();$gzip_size = strlen($gzip_contents); $gzip_crc = crc32($gzip_contents); $gzip_contents = gzcompress($gzip_contents, 9); $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; echo $gzip_contents; echo pack('V', $gzip_crc); echo pack('V', $gzip_size);
} else {
ob_end_flush();
}
}
-
-
effettivamente in Joomla 1.0.11 e 1.0.12 anche a me la verifica da quei siti non da esito positivo. mentre su dei vecchi siti con Mambo (versioni abbastanza vecchie ... non ho installazioni recenti) va perfettamente ... mah
-
Infatti la compressione smise di funzionare realmente con la vers 1.0.8 di Joomla mentre Mambo non ha problemi.:(
Do uno sguardo al codice Mambo così magari ne veniamo fuori.
-
meglio confrontare il codice di una versione 1.7 di joomla, sarà meglio ?
ne hai una copia ?
-
Il codice in joomla.php è uguale per Joomla 1.0.11, Joomla 1.0.7 e Mambo 6.2. Solo Mambo però funziona senza problemi, il problema quindi è da ricercarsi altrove, nel topic di joomla.org il problema sembra comparire con la 1.0.7, ho aperto un topic tempo fa perchè l'altro era troppo vecchio ma ovviamente nessuno ha risposto....
-
seguo con interesse questa discussione.... non ero a conoscenza che non funzionasse il gzip di joomla...
Purtroppo nn so darvi nessun aiuto
-
La community Joomla non mi ha dato nessuna risposta... :():
-
-
Scusate se vado a riesumare una discussione vecchia ma volevo chiedervi se con joomla 1.5 le cose sono cambiate.
Grazie
-
Dalle prove che ho fatto mi sembra che ora funzioni egregiamente,
riprova con i test consigliati all'inizio
-
@asteron said:
Dalle prove che ho fatto mi sembra che ora funzioni egregiamente,
riprova con i test consigliati all'inizio
ma sul primo post è scritto che se si apportano delle modifiche appaiono delle scritte di errore
-
Sui miei siti Joomla 1.5 e Joomla 2.5 la compressione GZIP sembra funzionare correttamente. L'ho analizzata con gli strumenti che ha linkato GabyZ e viene sempre mostrata (o meno) la sua presenza. Comunque anche ad "occhio nudo" si notano differenze di caricamento quando la compressione sta lavorando.
Ciao, Marco.