diff options
| author | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-06-30 23:36:10 +0000 |
|---|---|---|
| committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-06-30 23:36:10 +0000 |
| commit | ec7110b0f19e784518eb4e2e313026ca7b9987fd (patch) | |
| tree | 8756696abfe3285209847cea502d43da1d33840d /phpBB/includes | |
| parent | 3c5311ccfa71c85a5897664b1ee4aa2c1dde7256 (diff) | |
| download | forums-ec7110b0f19e784518eb4e2e313026ca7b9987fd.tar forums-ec7110b0f19e784518eb4e2e313026ca7b9987fd.tar.gz forums-ec7110b0f19e784518eb4e2e313026ca7b9987fd.tar.bz2 forums-ec7110b0f19e784518eb4e2e313026ca7b9987fd.tar.xz forums-ec7110b0f19e784518eb4e2e313026ca7b9987fd.zip | |
Updated gzip encoding for < 4.0.4pl1 I think ...
git-svn-id: file:///svn/phpbb/trunk@529 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/page_header.php | 13 | ||||
| -rw-r--r-- | phpBB/includes/page_tail.php | 23 |
2 files changed, 31 insertions, 5 deletions
diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php index 165d5566de..24dcf19ee8 100644 --- a/phpBB/includes/page_header.php +++ b/phpBB/includes/page_header.php @@ -27,6 +27,7 @@ define(HEADER_INC, TRUE); // // gzip_compression // +$do_gzip_compress = FALSE; if($board_config['gzip_compress']) { $phpver = phpversion(); @@ -40,10 +41,14 @@ if($board_config['gzip_compress']) } else if($phpver > "4.0") { - // It would be nice if we - // used output buffering here - // to allow compression for - // versions < 4.0.4pl1 + if(strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip')) + { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header("Content-Encoding: gzip"); + } } } diff --git a/phpBB/includes/page_tail.php b/phpBB/includes/page_tail.php index 4c22747ce1..0d154a1df5 100644 --- a/phpBB/includes/page_tail.php +++ b/phpBB/includes/page_tail.php @@ -53,6 +53,27 @@ $totaltime = ($endtime - $starttime); printf("<center><font size=-2>phpBB Created this page in %f seconds.</font></center>", $totaltime); +// +// Compress buffered output if required +// and send to browser +// +if($do_gzip_compress) +{ + $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); +} + exit; -?> +?>
\ No newline at end of file |
