compresseur_options.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. /**
  3. * Réglage de l'output buffering
  4. *
  5. * Si possible, générer une sortie compressée pour économiser de la bande passante
  6. *
  7. * Utilisation déconseillee et désactivee par défaut.
  8. * Utilisable uniquement via define('_AUTO_GZIP_HTTP',true)
  9. *
  10. * @package SPIP\Compresseur\Options
  11. */
  12. // si un buffer est deja ouvert, stop
  13. if ($GLOBALS['flag_ob']
  14. AND defined('_AUTO_GZIP_HTTP') AND _AUTO_GZIP_HTTP
  15. AND strlen(ob_get_contents())==0
  16. AND !headers_sent()) {
  17. if (
  18. // special bug de proxy
  19. !(isset($_SERVER['HTTP_VIA']) AND preg_match(",NetCache|Hasd_proxy,i", $_SERVER['HTTP_VIA']))
  20. // special bug Netscape Win 4.0x
  21. AND (strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.0') === false)
  22. // special bug Apache2x
  23. #&& !preg_match(",Apache(-[^ ]+)?/2,i", $_SERVER['SERVER_SOFTWARE'])
  24. // test suspendu: http://article.gmane.org/gmane.comp.web.spip.devel/32038/
  25. #&& !($GLOBALS['flag_sapi_name'] AND preg_match(",^apache2,", @php_sapi_name()))
  26. // si la compression est deja commencee, stop
  27. # && !@ini_get("zlib.output_compression")
  28. AND !@ini_get("output_handler")
  29. AND !isset($_GET['var_mode']) # bug avec le debugueur qui appelle ob_end_clean()
  30. )
  31. ob_start('ob_gzhandler');
  32. }