if (!@ob_start('ob_gzhandler')) { löschen

MyOOS [Dumper]ist ein Sicherungsprogramm für MySQL-Datenbanken. Damit können Sicherungskopien der Daten (Forum, Shop, Blog, usw.) erstellt und bei Bedarf auch wieder hergestellt werden. Besonders bei Web-Space ohne Shell-Zugang bietet sich MyOOS [Dumper] als sinnvolle Alternative an.
Antworten
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

if (!@ob_start('ob_gzhandler')) { löschen

Beitrag von r23 »

Hallo,

ich möchte folgenden Code löschen

Code: Alles auswählen

if (!@ob_start('ob_gzhandler')) {
    @ob_start();
}
Der PHP-Code, den Sie gezeigt haben, ist eine Möglichkeit, die Ausgabe des Skripts zu komprimieren, indem Sie die Funktion ob_gzhandler als Rückruffunktion für ob_start verwenden. Dies kann die Ladezeit der Webseite verbessern, indem die Größe der gesendeten Daten reduziert wird. Allerdings gibt es einige Einschränkungen und Alternativen zu dieser Methode.

Zunächst müssen Sie sicherstellen, dass die zlib-Erweiterung installiert und aktiviert ist, um ob_gzhandler verwenden zu können. Außerdem können Sie nicht gleichzeitig ob_gzhandler und zlib.output_compression verwenden. Wenn Sie letzteres aktivieren, wird die Ausgabe automatisch komprimiert, ohne dass Sie ob_start aufrufen müssen. Dies ist die bevorzugte Methode, da sie einfacher zu implementieren ist und weniger Probleme verursacht².

Ein weiterer Nachteil von ob_gzhandler ist, dass sie möglicherweise mit einigen Webservern oder Browsern nicht kompatibel ist. Zum Beispiel wurde ein Fehler gemeldet, dass ob_gzhandler in PHP 8.1.4 fehlschlägt und einen Inhaltskodierungsfehler verursacht³. Dies kann passieren, wenn der Webserver oder der Browser bereits eine Komprimierung durchführt oder nicht unterstützt. Um dies zu vermeiden, sollten Sie immer überprüfen, ob die Komprimierung erforderlich und möglich ist, bevor Sie ob_gzhandler aufrufen.

Zusammenfassend lässt sich sagen, dass der PHP-Code unter PHP 8.x noch funktionieren kann, aber nicht mehr zeitgemäß ist. Es gibt bessere Möglichkeiten, die Ausgabe zu komprimieren, wie zum Beispiel die Verwendung von zlib.output_compression oder anderen Servereinstellungen. Wenn Sie jedoch weiterhin ob_gzhandler verwenden möchten, sollten Sie vorsichtig sein und mögliche Konflikte oder Fehler vermeiden.

PHP: ob_gzhandler - Manual. https://www.php.net/manual/de/function.ob-gzhandler.php.
PHP: ob_start - Manual. https://www.php.net/manual/de/function.ob-start.php.

Wie aktiviere ich zlib.output_compression?

Die zlib-Komprimierung ist eine Methode, um die Ausgabe von PHP-Skripten zu verkleinern, indem sie mit dem gzip- oder deflate-Algorithmus komprimiert wird. Dies kann die Leistung und die Bandbreite Ihrer Webseite verbessern, indem die Datenmenge reduziert wird, die an den Browser gesendet wird.

Um die zlib-Komprimierung zu aktivieren, müssen Sie eine Einstellung in der php.ini-Datei ändern oder hinzufügen. Die php.ini-Datei ist eine Konfigurationsdatei, die das Verhalten von PHP steuert. Sie können diese Datei mit einem Dateimanager oder einem FTP-Programm bearbeiten. Die genaue Lage der php.ini-Datei hängt von Ihrem Server und Ihrer PHP-Version ab. Sie können die Funktion phpinfo () verwenden, um den Pfad der php.ini-Datei zu finden.

Die Einstellung, die Sie ändern oder hinzufügen müssen, heißt zlib.output_compression. Sie können diese Einstellung auf "On" setzen, um die Komprimierung zu aktivieren, oder auf "Off", um sie zu deaktivieren. Sie können auch einen numerischen Wert angeben, um die Größe des Ausgabepuffers zu bestimmen (der Standardwert ist 4KB). Zum Beispiel:

zlib.output_compression = On

oder

zlib.output_compression = 4096

Nachdem Sie die Einstellung geändert oder hinzugefügt haben, müssen Sie Ihren Webserver neu starten, damit die Änderungen wirksam werden.

Sie können auch die Komprimierungsstufe und den Komprimierungsalgorithmus mit den Einstellungen zlib.output_compression_level und zlib.output_handler anpassen. Die Komprimierungsstufe kann einen Wert zwischen 0 (keine Komprimierung) und 9 (höchste Komprimierung) haben. Der Standardwert ist -1, was bedeutet, dass der Server den besten Wert wählt. Der Komprimierungsalgorithmus kann entweder "gzip" oder "deflate" sein. Zum Beispiel:

zlib.output_compression_level = 6

zlib.output_handler = gzip

Eine alternative Methode, um die zlib-Komprimierung zu aktivieren, ist die Verwendung des PHP-Managers in Site Tools³, wenn Sie ein SiteGround-Kunde sind. Mit dem PHP-Manager können Sie verschiedene PHP-Einstellungen für Ihre Webseite anpassen, einschließlich der zlib-Komprimierung. Sie können diese Methode verwenden, wenn Sie keinen direkten Zugriff auf die php.ini-Datei haben oder wenn Sie nicht wissen, wie Sie sie bearbeiten sollen.

PHP: Laufzeit-Konfiguration - Manual. https://www.php.net/manual/de/zlib.configuration.php.

Was ist der Unterschied zwischen gzip und deflate?

Der Unterschied zwischen gzip und deflate ist, dass gzip ein Dateiformat ist, das eine komprimierte Datenmenge mit dem deflate-Algorithmus enthält, sowie einige zusätzliche Header und eine Prüfsumme. Deflate ist ein Kompressionsalgorithmus, der eine Kombination aus LZ77 und Huffman-Kodierung verwendet. Deflate kann auch für andere Dateiformate verwendet werden, wie zum Beispiel ZIP.

Gzip bietet einige Vorteile gegenüber deflate, wie zum Beispiel eine bessere Zuverlässigkeit, da die Prüfsumme die Integrität der Daten sicherstellt. Außerdem ist gzip weit verbreitet und von vielen Webservern und Browsern unterstützt. Deflate hingegen kann mit einigen Webservern oder Browsern nicht kompatibel sein oder falsch interpretiert werden². Deshalb empfehlen einige Quellen, gzip anstelle von deflate zu verwenden, wenn es um die Komprimierung von Webinhalten geht².

Ich freue mich über Meinungen

Beste Grüße

Ralf
Antworten