Gzip auffüllen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gzip auffüllen?

    Ich hab ein ganz interessantes Problem. Vor der Ausgabe von html Seiten komprimier ich diese mit gzip. Das klappt eigentlich bei fast allen Browser ganz gut bis auf den IE. Jetzt habe ich herausgefunden, dass ältere IEs (4/5/5.5/teilweise 6.0) Seiten nicht darstellen, die komprimiert kleiner als 4 kb sind, d. h. die Seite bleibt hin und wieder einfach weiß.

    Jetzt könnte man natürlich dem aus dem Weg gehen, indem man einfach die Komprimierung einstellt, bei Seiten, die kleiner als diese 4 kb sind und der User MSIE benutzt. Das möchte ich aber nicht, weil ich mir dann auch die Komprimierung gleich sparen kann, wenn bei 80 % der User die ganzen 30 kb verschickt werden müssen. Daher dachte ich, man könnte das bestehende gzip einfach mit Leerzeichen oder etwas ähnlichem Auffüllen, damit ich genau auf 4 kb komme.

    Ich komprimiere die Daten folgendermaßen:
    PHP-Code:
    /* Compress the output */
    $this->size    strlen($this->contents);
    $this->gzdata    .= substr(gzcompress($this->contents$this->level), 0, - 4);
    $this->gzdata    .= pack('V'crc32($this->contents));
    $this->gzdata    .= pack('V'$this->size);
    $this->gzsize    strlen($this->gzdata); 
    Wie mach ich das?

  • #2
    auffüllen? klingt sehr absurd, aber du kannst dir ja str_pad() angucken (in abhängigkeit von $this->gzsize)

    Kommentar


    • #3
      klingt für mich auch eher abwegig.
      das gzip-format hat eine bestimmte spezifikation - header, längenangaben, inhalt; sowas in der art.
      da wirst du nicht einfach so nachher irgendwas anhängen können, ohne dass die daten kaputt gehen.
      und vorher etwas anfügen - ja, was? mehrere KB leerzeichen? reichlich unnütz - schließlich benutzt man ein komprimierungsverfahren ja hauptsächlich dazu, einem bestimmten muster folgende daten stark zu verkürzen. mehrere KB leerzeichen brauchen da in der komprimierten darstellung sicher auch nur eine anzahl bytes, die du an einer hand abzählen kannst ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X