Hello, I am trying to get ob_start to work the way I expect but I am running into some problems.
Take the following example code: /* Start of code snippet */ function ob_spit_content_length ($buffer) { $len=strlen($buffer); if($len>0) Header( "Content-Length: $len" ); return $buffer; } if( !function_exists("ob_end_clean_all") ) { function ob_end_clean_all () { while ( ob_get_level() ) { ob_end_clean(); } } } ob_start("ob_spit_content_length"); ob_start("ob_gzhandler"); print "There is lots of stuff right here!"; ob_end_clean_all(); /* End of code snippet */ I am running PHP 4.3.0 and my desire is to compress all output (if browser supports) and also send the content-length header rather than sending chunked so that my output looks as close to static as possible. My understanding is that ob_start can be nested and since I registered "ob_spit_content_length" first and then "ob_gzhandler" second that "ob_gzhandler" will run first and therefor $buffer being send to "ob_spit_content_length" with either be clear text "browser does not support compression" or the compress version of the page. Either way strlen will get me my length. Well I get very strang effects and as soon as I comment out my 2 ob_start calls every think works fine. Often times op_spit_content_length will say 0 bytes even though I *KNOW* output was sent. Am I missing something here? Did I layer things wrong? Any suggestions would be much appreciated. Thanks, Serge. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php