It may seem obvious but if you use ob_start("ob_gzhandler"), make sure no content is unintentionally echo'ed before : this could be blank lines before '<?php' or after '?>' tags in included files or even errors.
Otherwise, only a part of the content (the content sent after ob_start()) will be compressed, which will confuse the client.
Setting compression using zlib.output_compression either in php.ini or in Apache configuration file (with directive php_flag) is safer in this regard.