[PHP] Compression Zlib et Register Globals Off...

Compression Zlib et Register Globals Off... [PHP] - Programmation

Marsh Posté le 21-02-2002 à 22:44:24    

Hello all :)
 
J'ai ce script :
 

Code :
  1. <?
  2. ob_start();
  3. ob_implicit_flush(0);
  4. function CheckCanGzip(){
  5.     global $HTTP_ACCEPT_ENCODING;
  6.     if (headers_sent() || /*connection_timeout() || */connection_aborted()){
  7.         return 0;
  8.     }
  9.     if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
  10.     if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
  11.     return 0;
  12. }
  13. /* $level = compression level 0-9, 0=none, 9=max */
  14. function GzDocOut($level=9,$debug=1){
  15.     $ENCODING = CheckCanGzip();
  16.     if ($ENCODING){
  17.         print "\n<p align=center><font color=#FFFFFF size=1>Compression $ENCODING activée\n";
  18.         $Contents = ob_get_contents();
  19.         ob_end_clean();
  20.         if ($debug){
  21.             $s = "<br>Page non compressée : ".strlen($Contents)." octets";
  22.             $s .= "<br>Page compressée : ".strlen(gzcompress($Contents,$level))." octets</font></p>";
  23.             $Contents .= $s;
  24.         }
  25.         header("Content-Encoding: $ENCODING" );
  26.         print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
  27.         $Size = strlen($Contents);
  28.         $Crc = crc32($Contents);
  29.         $Contents = gzcompress($Contents,$level);
  30.         $Contents = substr($Contents, 0, strlen($Contents) - 4);
  31.         print $Contents;
  32.         print pack('V',$Crc);
  33.         print pack('V',$Size);
  34.         exit;
  35.     }else{
  36.         ob_end_flush();
  37.         exit;
  38.     }
  39. }
  40. ?>


 
Et il ne fonctionne pas si PHP est configuré en Register Globals Off...
 
Quelqu'un a une petite idée ?
 
Merci...

Reply

Marsh Posté le 21-02-2002 à 22:44:24   

Reply

Marsh Posté le 21-02-2002 à 23:24:21    

remplace la fonction par :
 
ob_start("ob_gzhandler" );


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 21-02-2002 à 23:27:36    

Tu veux dire la fonction GzDocOut() ?

Reply

Marsh Posté le 21-02-2002 à 23:31:45    

Reply

Marsh Posté le 21-02-2002 à 23:34:13    

Merci :jap:
Et y'a pas moyen de récupérer la taille normale et compressée après ?

Reply

Marsh Posté le 07-05-2002 à 12:33:03    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed