aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2001-06-30 23:36:10 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2001-06-30 23:36:10 +0000
commitec7110b0f19e784518eb4e2e313026ca7b9987fd (patch)
tree8756696abfe3285209847cea502d43da1d33840d /phpBB/includes
parent3c5311ccfa71c85a5897664b1ee4aa2c1dde7256 (diff)
downloadforums-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.php13
-rw-r--r--phpBB/includes/page_tail.php23
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