Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Gzip auffüllen? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Gzip auffüllen?


 
S.Oliver
09-04-2005, 19:52 
 
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:

/* 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?

 
penizillin
10-04-2005, 14:32 
 
auffüllen? klingt sehr absurd, aber du kannst dir ja str_pad() angucken (in abhängigkeit von $this->gzsize)

 
wahsaga
10-04-2005, 16:33 
 
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 ...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:40 Uhr.