GZIP PHP-Code von PHPbb...mal ne frage
Verfasst: 12.09.2003 14:37
Hi,
ich habe schon seit einem Jahr GZIP im Forum aktiviert und nun haben wir ne neue Homepage und dort wollte ich das auch mal einbauen also habe ich mir mal den Code für GZIP beim Forum angeschaut und habe die Befürchtung :
"Obwohl ich GZIP eingeschaltet habe, wird es vom Forum nicht angewendet"
In der PageHeader.php steht folgender Code:
Ich habe GZIP aktiviert also ist die erste IF-Anweisung TRUE dann schaut er ob die PHP-Version größer 4.0.4pl1 und ich habe 4.3.0 und verwende den IE 6.0SP1 also geht er auch in diese IF-Anweisung und nicht in die ELSEIF-Anweisung. Dann ladet er erfolgreich die zlib-extension und startet das Outputbuffering. Die ELSEIF überspringt er dann und das war der GZIP-Teil im Headerteil des Forum.
Nach dem Teil ist die $do_gzip_compress immer noch False anstatt true da die nur im ELSEIF-Teil true gesetzt wird.
In der PageTail.php siehts wie folgt nun aus:
Da $do_gzip_compress im Header nicht = TRUE gesetzt wurde überspringt er den Teil und macht keinen GZIP
Ist das nicht ein Codefehler? Er läd die zlib extension extra im header ein und verwendet sie dann nicht zur kompression. Ist mir Spanisch wieso er kein GZIP verwendet wenn ich es anstelle und mein Server stellt die nötige Extensions ja zur verfügung.
Hat wer damit erfahrung?
ich habe schon seit einem Jahr GZIP im Forum aktiviert und nun haben wir ne neue Homepage und dort wollte ich das auch mal einbauen also habe ich mir mal den Code für GZIP beim Forum angeschaut und habe die Befürchtung :
"Obwohl ich GZIP eingeschaltet habe, wird es vom Forum nicht angewendet"
In der PageHeader.php steht folgender Code:
Code: Alles auswählen
//
// gzip_compression
//
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
$phpver = phpversion();
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
{
if ( extension_loaded('zlib') )
{
ob_start('ob_gzhandler');
}
}
else if ( $phpver > '4.0' )
{
if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
{
if ( extension_loaded('zlib') )
{
$do_gzip_compress = TRUE;
ob_start();
ob_implicit_flush(0);
header('Content-Encoding: gzip');
}
}
}
}
Nach dem Teil ist die $do_gzip_compress immer noch False anstatt true da die nur im ELSEIF-Teil true gesetzt wird.
In der PageTail.php siehts wie folgt nun aus:
Code: Alles auswählen
//
// Compress buffered output if required and send to browser
//
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);
}
Ist das nicht ein Codefehler? Er läd die zlib extension extra im header ein und verwendet sie dann nicht zur kompression. Ist mir Spanisch wieso er kein GZIP verwendet wenn ich es anstelle und mein Server stellt die nötige Extensions ja zur verfügung.
Hat wer damit erfahrung?