PHP is starting output buffering automatically for you and then you are starting it in your script as well, that is why you are receiving the message ob_gzhandler can not be used twice.
Use ob_get_level to check if output buffering is not already started. <?php // start output buffering if it is not already running if (0 == ob_get_level()) { ob_start('ob_gzhandler'); } ?> You may want additional logic that checks to see if the output buffer hander is ob_gzhandler. Jsaon On Fri, 2003-02-21 at 17:12, Gerard Samuel wrote: > I noticed this problem with one of my scripts when its running under php > 4.3.0, Apache 2.0.44. > It only happens when started with ob_start('ob_gzhandler'); > Even with this test script from the php manual produces this error. > Any insight would be appreciated. > > > From php.ini -> > ; Output buffering allows you to send header lines (including cookies) even > ; after you send body content, at the price of slowing PHP's output layer a > ; bit. You can enable output buffering during runtime by calling the output > ; buffering functions. You can also enable output buffering for all > files by > ; setting this directive to On. If you wish to limit the size of the buffer > ; to a certain size - you can use a maximum number of bytes instead of > 'On', as > ; a value for this directive (e.g., output_buffering=4096). > output_buffering = 4096 > > ; You can redirect all of the output of your scripts to a function. For > ; example, if you set output_handler to "mb_output_handler", character > ; encoding will be transparently converted to the specified encoding. > ; Setting any output handler automatically turns on output buffering. > ; Note: People who wrote portable scripts should not depend on this ini > ; directive. Instead, explicitly set the output handler using > ob_start(). > ; Using this ini directive may cause problems unless you know what > script > ; is doing. > ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" > ; and you cannot use both "ob_gzhandler" and > "zlib.output_compression". > ;output_handler = > > ; Transparent output compression using the zlib library > ; Valid values for this option are 'off', 'on', or a specific buffer size > ; to be used for compression (default is 4KB) > ; Note: Resulting chunk size may vary due to nature of compression. PHP > ; outputs chunks that are few handreds bytes each as a result of > compression. > ; If you want larger chunk size for better performence, enable > output_buffering > ; also. > ; Note: output_handler must be empty if this is set 'On' !!!! > ; Instead you must use zlib.output_handler. > zlib.output_compression = Off > > ; You cannot specify additional output handlers if zlib.output_compression > ; is activated here. This setting does the same as output_handler but in > ; a different order. > ;zlib.output_handler = > > ----------------------------------- > Example script -> > > <?php > > ob_start("ob_gzhandler"); > > ?> > <html> > <body> > <p>This should be a compressed page. > </html> > <body> > > --------------------------------- > Error reported -> > > This should be a compressed page. > Warning: (null)() [ref.outcontrol]: output handler 'ob_gzhandler' cannot > be used twice in Unknown on line 0 > > -- > Gerard Samuel > http://www.trini0.org:81/ > http://test1.trini0.org:81/ > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php