phpbar.de logo

Mailinglisten-Archive

[php] Zlib.output_compression - Problem

[php] Zlib.output_compression - Problem

Mike Beck Mike.Beck at ibmiller.de
Fre Feb 27 10:21:14 CET 2004


Hallo allerseits,

Mein Server ärgert mich gerade und ich finde den Fehler nicht, weil ich irgendwie den Grund nicht verstehe.

Kurz gesagt:
Wenn ich zlib in der php.ini deaktiviere, dann kann ich keinerlei Dateien mit Selbstgestricktem Header mehr so übertragen, dass der IE es verstehen würde, der Opera akzeptiert die Dateien aber weiterhin.

Lang erklärt:
Ich hatte ursprünglich Zlib.output_compression in der php.ini aktiviert. Auf unserer Webseite verwende ich phpCMS , das bietet die Möglichkeit die Seiten gz-komprimiert auszuliefern. Nachdem das extrem langsam lief, habe ich erst in der phpCMS - Einstellung die Kompression deaktiviert, das hat nix gebracht. Dann habe ich in der php.ini Zlib.output_compression auf Off gestellt und jetzt ist die Seite www.ibmiller.de wieder so schnell wie sie sein soll.
Auf dem Server läuft aber auch noch unser Intranet. Dort werden u.a. mit fpdf PDF - Dateien erzeugt. Diese werden von FPDF wenn zlib vorhanden automatisch komprimiert. Sobald ich zlib in der php.ini deaktiviere kann ich diese Dateien mit dem Internet Explorer nicht mehr runterladen (Download wird abgebrochen, Datei wäre nicht auf dem Server). Ich habe in FPDF die Kompression ausdrücklich deaktiviert, bringt auch nix.
Jetzt stelle ich fest, dass auch ein Skript, das VCS - Dateien (Kalendereinträge, sind im Endeffekt normale Textdateien) erzeugt nicht funktioniert. Das ist die entscheidende Stelle:
<snip>
           if (!empty($HTTP_USER_AGENT)
                && (strpos($HTTP_USER_AGENT, 'MSIE 5.5') || strpos($HTTP_USER_AGENT, 'Opera'))) {
                header('Content-Type: application/dummy');
            }
            else {
                header('Content-Type: application/octet-stream');
            }
            if (headers_sent()) {
                $msg = 'Some data has already been output to browser, can\'t send VCS file';
                showmsg($msg,'failure');
            }
            header('Content-Length: ' . strlen($text));
            header('Content-Disposition: attachment; filename=urlaub.vcs');
            echo $text;
</snip>

Wie man sieht nix mit kompression! Trotzdem weigert sich der IE die Datei runterzuladen, mit Opera geht's!
-- 
mit freundlichen Grüßen
Dipl.-Ing. (FH) Mike Beck
Ingenieurbüro Miller
mike.beck at ibmiller.de 

php::bar PHP Wiki   -   Listenarchive