HTML komprimieren mittels PHP
| Verfasst am: 11. 04. 2010 [14:59] | |||
gambler Dabei seit: 01.10.2009 Themenersteller 96 Beiträge | Beitrag hilfreich? | ||
| Hi, ich bräuchte grade mal einen Denkanstoß! Per PHP erzeuge ich mir eine Cache-Datei im HTML-Format: PHP <?php // Pfad und Name der Cache-Datei $cacheDatei = "cache.htm"; // Gültigkeitsdauer in Sekunden $cacheDauer = 3600; // Prüfen ob Cache-Datei existiert und noch gültig ist if (file_exists($cacheDatei) && (time() - filemtime($cacheDatei)) < $cacheDauer) { // statt dynamische Page generieren zu lassen // includen wir statische Cache-Datei include($cacheDatei); exit(); } // Der interne Ausgabe-Puffer wird aktiviert ob_start(); /*Inhalt der angeforderten Seite*/ //Puffer leeren und in Cache-Datei schreiben file_put_contents($cacheDatei, ob_get_flush()); Soweit so gut...da ich nicht viele Datenbankanfragen oder ressourcenlastige Funktionen in meinen PHP-Dateien ausführe, bringt mir die nun reine HTML-Cache-Datei nicht viel, außer zusätzlichen Speicherplatz der benötigt wird für die Cache-Datei. Eigentlich wollte ich nun zusätzlich zu dieser Cache-Datei noch eine komprimierte gzip-Version dieser statischen Datei erstellen lassen, leider fällt mir grade nicht ein, wie man das in PHP am besten umsetzt. Ich stelle mir das halt so vor: PHP file_put_contents($cacheDatei, ob_get_flush()); //Erzeuge gzip-Datei($cacheDatei) Kann mir hier jemand mal bitte auf die Sprünge helfen und sagen, wie ich das am sinnvollsten umgesetzt bekomme? Danke schon mal für Eure Antworten ;=) Gruß Stephan | |||
| Verfasst am: 11. 04. 2010 [15:30] | |||
UFOMelkor Dabei seit: 20.10.2009 ![]() 348 Beiträge | Beitrag hilfreich? | ||
| Die zlib-Blibliothek müsste eigentlich etwas passendes bieten. | |||
| Verfasst am: 11. 04. 2010 [15:34] | |||
Raptor Dabei seit: 10.05.2009 ![]() 1159 Beiträge | Beitrag hilfreich? | ||
| Die gesuchte Funktion heisst gzencode(): PHP <?php $komprimierter_inhalt = gzencode($datei_inhalt); ?> | |||
| Verfasst am: 11. 04. 2010 [16:48] | |||
gambler Dabei seit: 01.10.2009 Themenersteller 96 Beiträge | Beitrag hilfreich? | ||
| Danke für die Tipps. Jetzt klappt es schon mal, dass eine cache.htm und eine cache.htm.gz erstellt werden. Ein weiteres Problem was mich nun beschäftigt, ist die Frage, ob bezogen auf den folgenden Code, der Webserver die unkomprimierte cache.htm Datei sendet, falls ein Browser die Seite aufruft, der gzip nicht unterstützt? PHP <?php //Pfad und Name der Cache-Dateien $cacheDatei="cache.htm"; $cacheDateiGzip="cache.htm.gz"; //Gültigkeitsdauer in Sekunden $cacheDauer=3600; //prüfen ob Cache-Dateien existieren und gültig sind if (file_exists($cacheDatei)&&file_exists($cacheDateiGzip) &&(time()-filemtime($cacheDatei))<$cacheDauer) { //statt Page dynamisch zu generieren wird //statisch komprimierte HTML-Datei eingebunden header("Content-Encoding: gzip"); include($cacheDateiGzip); exit(); } // [...] Da ich ja explizit die cache.htm.gz Datei include und auch der Header mit gzip Angabe ist, wird der Webserver, wohl nicht automatisch die unkomprimierte Datei senden, wenn der Browser Komprimierung nicht unterstützt oder? Kann man eventuell mit einer Funktion überprüfen, ob der Browser gzip unterstützt? Ich bin leider nicht so gut in PHP, aber ich würde mir das so vorstellen: PHP <?php //Pfad und Name der Cache-Dateien $cacheDatei="cache.htm"; $cacheDateiGzip="cache.htm.gz"; //Gültigkeitsdauer in Sekunden $cacheDauer=3600; //prüfen ob Cache-Dateien existieren und gültig sind if (file_exists($cacheDatei)&&file_exists($cacheDateiGzip) &&(time()-filemtime($cacheDatei))<$cacheDauer) { if(BrowserUnterstütztGzip == false) { include($cacheDatei); exit(); } //statt Page dynamisch zu generieren wird //statisch komprimierte HTML-Datei eingebunden header("Content-Encoding: gzip"); include($cacheDateiGzip); exit(); } // [...] Ich habe bereits mit ob_gzhandler() es versucht, aber bekomme das irgendwie nicht so hin. Tipps sind stehts willkommen... Gruß Stephan | |||
| Verfasst am: 11. 04. 2010 [17:56] | |||
Raptor Dabei seit: 10.05.2009 ![]() 1159 Beiträge | Beitrag hilfreich? | ||
PHP <?php if(stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')===false){ // gzip wird nicht unterstützt } ?> | |||
| Verfasst am: 11. 04. 2010 [18:15] | |||
gambler Dabei seit: 01.10.2009 Themenersteller 96 Beiträge | Beitrag hilfreich? | ||
Raptor schrieb: PHP <?php if(stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')===false){ // gzip wird nicht unterstützt } ?> | |||
| Verfasst am: 14. 04. 2010 [16:34] | |||
doc4pc Dabei seit: 16.11.2009 59 Beiträge | Beitrag hilfreich? | ||
| Du kannst auch ob_start gleich zum zippen bewegen: ob_start("ob_gzhandler"); Das ist vielleicht minimal schneller als ein extra aufruf zum Zippen, habe aber noch nicht nachgemessen. LG Andreas | |||
| Verfasst am: 14. 04. 2010 [17:44] | |||
gambler Dabei seit: 01.10.2009 Themenersteller 96 Beiträge | Beitrag hilfreich? | ||
doc4pc schrieb: Du kannst auch ob_start gleich zum zippen bewegen: ob_start("ob_gzhandler"); Das ist vielleicht minimal schneller als ein extra aufruf zum Zippen, habe aber noch nicht nachgemessen. LG Andreas Hi Andreas, das geht natürlich auch, aber dann ist doch im Puffer schon der komprimierte Content?! Genau das wollte ich nicht, sondern ich wollte den Content sowohl unkomprimiert als auch komprimiert in jeweils einer Datei speichern. Ich wollte halt sicherstellen, dass ein Besucher meiner Website die unkomprimierte Fassung erhält, wenn sein Browser kein gzip unterstützt. Um ehrlich zu sein, weiß ich nicht ob das überhaupt notwendig ist - gibt es noch Browser die gzip von Haus aus nicht unterstützen? Gruß Stephan | |||
Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.
Werde in Echtzeit über neue Foren-Beiträge informiert:
4 Mitglieder waren innerhalb der letzten 15 Minuten online (45 heute gesamt):
andybird, axeljanaschke, klarsteb, okapijoe
Administratoren und Moderatoren:
[keine]
Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Lade...
Neueste Foren-Beiträge
| Abstimmung: 20.000 Mitglieder Jubiläum - was tun? Internes & Ankündigungen / Internes | Gestern [23:07] | |
| Microsofts soziales Netzwerk So.cl Internet / News | Gestern [20:03] | |
| Nicht nachvollziehbarer CSS Fehler Internes & Ankündigungen / Analyse-Ergebnisse | Gestern [13:37] | |
| Partnerprogramm: Eintrag für Kunden erledigt Internes & Ankündigungen / Internes | 22. 05. 2012 [10:35] | |
| Hotelbericht Entwickler Treffpunkt / Website vorstellen | 22. 05. 2012 [09:28] |
Lade...
Aktuelle Artikel:
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
18. Mai 2012
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
15. Mai 2012
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
14. Mai 2012

