Sam: GZip, ich verstehe gar nichts mehr

Moin
mein Gzip sieht so aus:

am Anfang der Datei: ob_start('ob_gzhandler');
am Ende der Datei: ob_end_flush();

Funktioniert prächtig. Jetzt lese ich allerdings auf den verschiedensten Seiten verschiedenste Möglichkeiten für GZip Komprimierung und kenne mich jetzt nicht mehr aus was denn nun richtig ist. Auf den einen Seiten reicht das bisschen Code, das ich verwende. Auf anderen gibts wiederum reisige Codestücke, die man angeblich braucht um zu prüfen ob der Browser das unterstützt und um Speicher zu füllen und zu leeren blablabla.
ich weiß mittlerweile nicht mehr was denn nun richtig ist. Kann mir bitte jemand helfen? Ich möchte, dass meine GZip Funktion auf fast allen möglichen Servern läuft, also dass ich bei einem Wechsel oder wenn ich das Programm jemand anderen gebe, nichts mehr geändert werden muss. Bin euch echt für jeden handfesten Hinweis dankbar.

Gruß, Sam

  1. Hi!

    am Anfang der Datei: ob_start('ob_gzhandler');
    am Ende der Datei: ob_end_flush();

    die 2. Zeile brauchst Du nicht, weil das automatisch passiert.

    Funktioniert prächtig. Jetzt lese ich allerdings auf den verschiedensten Seiten verschiedenste Möglichkeiten für GZip Komprimierung und kenne mich jetzt nicht mehr aus was denn nun richtig ist.

    Es geht Dir darum die HTML-Ausgabe Deine PHP-Scripte zu komprimieren, ja?

    Dann sollte Deine obige Version normalerweise wunderbar funktionieren.

    Auf den einen Seiten reicht das bisschen Code, das ich verwende. Auf anderen gibts wiederum reisige Codestücke, die man angeblich braucht um zu prüfen ob der Browser das unterstützt und um Speicher zu füllen und zu leeren blablabla.

    Das macht PHP automatisch.

    Siehe Doku: http://de3.php.net/manual/de/function.ob-gzhandler.php

    ob_gzhandler() is intended to be used as a callback function for
    ob_start() to help facilitate sending gz-encoded data to web browsers
    that support compressed web pages. Before ob_gzhandler()  actually
    sends compressed data, it determines what type of content encoding the
    browser will accept ("gzip", "deflate" or none at all) and will return
    its output accordingly. All browsers are supported since it's up to
    the browser to send the correct header saying that it accepts
    compressed web pages.

    Grüße
    Andreas

    --
    SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
    1. Hi Andreas!

      ist das auch okay wenn ich das nur in die php.ini schreibe, oder findet dann keine Überprüfung mehr statt?

      MFG
      fuboly

      1. Hi!

        ist das auch okay wenn ich das nur in die php.ini schreibe, oder findet dann keine Überprüfung mehr statt?

        Was schreibst Du in die php.ini?

        Unter [link.http://de3.php.net/manual/de/function.ob-gzhandler.php] steht als Anmerkung:

        You cannot use both ob_gzhandler() and  ini.zlib.output_compression.
        Also note that using  ini.zlib.output_compression is preferred over
        ob_gzhandler().

        ini.zlib.output_compression = On

        ist demnach also sowieso die bessere Idee, nur hat nicht jeder diese Möglichkeit hierzu.

        Aber auch hier lohnt ein Blick ins (englische!) Manual: http://de3.php.net/manual/en/ref.zlib.php#ini.zlib.output-compression

        zlib.output_compression  boolean/integer

        Whether to transparently compress pages. If this option is set
        to "On" in php.ini or the Apache configuration, pages are compressed
        if the browser sends an "Accept-Encoding: gzip" or "deflate" header.
        "Content-Encoding: gzip" (respectively "deflate") and "Vary:
        Accept-Encoding" headers are added to the output.

        Grüße
        Andreas

        --
        SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
    2. Das ist toll, also noch einfacher :) Weiß nicht warum dann manche so umständlichen Code schreiben.
      Und belastet GZip den Server eigentlich sehr? Zb. wenn ein paar 100 Leute zugleich auf der Seite sind?

    3. Hallo Andreas,

      so einfach ist es nicht. Browser haben die unangenehme Eigenschaft zu lügen. Siehe auch

      <http://www.schroepl.net/projekte/mod_gzip/

      Grüße,
       CK

      --
      <zentrum> wie war noch mal die option in make.conf fuer das benutzen von pipes um das compile zu beschluenigen?
      <CK1> CFLAGS="-pipe"
      <torsten> Oder man frage einen Gentooer seiner Wahl, wie man 2 km Compilerswitches fuer seine CPU hinbekommt ;)
      [link:http://wwwtech.de/>
      1. Hallo Christian!

        so einfach ist es nicht. Browser haben die unangenehme Eigenschaft zu lügen. Siehe auch

        http://www.schroepl.net/projekte/mod_gzip/

        Du wirst es kaum glauben, aber ich hatte wirklich dran gedacht http://www.schroepl.net/projekte/mod_gzip/browser.htm zu posten, aber eigentlich halte ich diese Probleme in diesem Zusammenhang nicht mehr für so wichtig. Das einzige wirklich unangenehmere Problem in diesem Zusammenhang hat mir bisher IE5.0 SP4 bereitet, denn dieser bringt es fertig bei einer auf diese Weise komprimierten HTML-Seite nur den halben Quelltext zu verarbeitrn und dann mit unbekanntem Fehler abzubrechen.

        Viele Grüße
        Andreas

        --
        SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/