note 51949 added to function.ob-gzhandler

From: Date: Sat, 16 Apr 2005 12:29:45 +0000
Subject: note 51949 added to function.ob-gzhandler
Groups: php.notes 
Request: Send a blank email to php-notes+get-88083@lists.php.net to get a copy of this message
All versions of MSIE have a bug where they don't cache gzipd contents. If your application depends on caching, this is something to keep in mind. In the end, I did: <?php // These are so benificial, they default to true. if (!isset($use_page_cache)) $use_page_cache = 1; if (!isset($use_compression)) $use_compression = 1; // Add browsers here as we must detect them. Opera is an oddball, if we don't detect // it specifically, it will turn up as MSIE $browser="other"; if (isset($_SERVER['HTTP_USER_AGENT'])) { $agent = $_SERVER['HTTP_USER_AGENT']; if (eregi("opera",$agent)){ $browser="opera"; }elseif(eregi("msie",$agent)){ $browser="msie"; } } if ($use_compression && !( $use_page_cache && $browser == "msie")) { // Turn on compression, makes quite a difference in bandwith usage. // However, MSIE (all versions) have a bug with compression and caching. So for MSIE // it's either compression or caching. We choose caching. ob_start('ob_gzhandler'); } session_cache_limiter("must-revalidate"); session_start(); // ... put stuff in $content ... if ($use_page_cache) { // MD5 is slow, however with a fast server (PIII or better) we should be OK $hash = md5($content); $headers = getallheaders(); if (isset($headers['If-None-Match']) && ereg($hash, $headers['If-None-Match'])) { header('HTTP/1.1 304 Not Modified'); exit; } header("ETag: \"$hash\""); } print $content; ?> ---- Manual Page -- http://www.php.net/manual/en/function.ob-gzhandler.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+51949 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+51949&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+51949&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+51949&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+51949&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+51949&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+51949&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#88083) next »