Donnerstag, 26. Oktober 2006

HTML CSS

CSS Dateien komprimieren

Das Komprimieren von CSS Daten, schont den Traffic-Verbrauch und erhöht zudem die Ladegeschwindigkeit der Seite. Doch wie funktioniert das?

Wenn man CSS-Dateien komprimiert, freut sich zum einen der Geldbeutel, da weniger Traffic verbraucht wird. Zum anderen natürlich der Benutzer, der mit einer geringern Ladegeschwindigkeit der Seite belohnt wird.

Es gibt auch anscheinend fertige Software, die das bewerkstelligt, doch ist das meiner Meinung nach recht mühsam, wenn man immer wieder erst die Software aufrufen muss um die CSS-Dateien zu verkleinern und sie danach wieder auf den Server laden muss.

Um das automatisch machen zu können, brauchen wir PHP auf dem Server. Dazu noch ein paar Zeilen Scriptcode und schon wird die CSS-Datei komprimiert.

Eines vorweg, ich werde euch zwei Arten der Komprimierung von CSS-Dateien zeigen. Erstens mit der klassischen Zip-Komprimierung und zweitens durch Löschen von unnötigen Zeichen und Kommentaren in der CSS-Datei.

Wichtig ist, das ihr das CSS-Style-Sheet in einer externen Datei ausgelagert habt. Falls ihr denn CSS-Code im Header euerer Datei habt, schreibt den Code in eine externe Datei. Auch zu beachten ist, dass ihr der CSS-Datei die Endung .php verpasst, damit der PHP-Parser sich der CSS-Datei annimmt.

Im Kopf der CSS-Datei fügt ihr folgenden Code ein:

Komprimierung von CSS-Dateien mit ob_gzhandler

Download Code!

  1.  
  2. <?php
  3. // Test, ob der Browser gzip akzeptiert
  4. if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
  5.     // Den Content-type setzen, wichtig für den Firefox
  6.     header('Content-type: text/css');
  7.     // Einschalten der Pufferung von Ausgaben
  8.     // Dieser Funktion ruft mit einem Callback die Funktion ob_gzhandler handler auf
  9.     ob_start("ob_gzhandler");
  10. }
  11.  
  12. ?>
  13.  

Wenn nun keine Zip-Komprimierung stattfinden soll, sondern die unnötigen Zeichen gelöscht werden sollen, benutzt ihr diesen Code:

Komprimierung von CSS-Dateien durch Löschen von unnötigen Zeichen und Kommentaren

Download Code!

  1.  
  2. <?php
  3. // Den Content-type setzen, wichtig für den Firefox
  4. header('Content-type: text/css');
  5. // Einschalten der Pufferung von Ausgaben
  6. // Dieser Funktion ruft mit einem Callback die Funktion cleanUp auf
  7. ob_start("cleanUp");
  8.  
  9. // Diese Funktion entfernt alle Kommentare, Tabs, Leerzeichen und Zeilenumbrüche
  10. function cleanUp($payload) {
  11.     //  Kommentare entfernen
  12.     $payload = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $payload);
  13.     // Tabs, Leerzeichen und Zeilenumbrüche entfernen
  14.     $payload = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $payload);
  15.     return $payload;
  16. }
  17. ?>
  18.  

Am Ende der CSS-Datei wird folgender PHP-Code eingefügt:

Download Code!

  1.  
  2. <?php
  3. // Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  4. ob_end_flush();
  5. ?>
  6.  
Geschrieben von Mr.Foo in HTML CSS um 12:30
Kommentar (1) | Trackbacks (0)
Tags für diesen Artikel: HTML CSS
  1. Nicht gut
  2. Uninteressant
  3. Neutral
  4. Gut
  5. Sehr gut
Bewertung: keine, 0 Stimme(n) 39 Klicks

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Axel - #1 - 29.12.2008 15:03 - (Antwort)

Für diejenigen den das zu kompliziert ist oder wo sich die CSS Datei nur ca. 1x im Monat ändert gibt es online den CSS Komprimierer http://www.csscruncher.com
dort werden einfach überflüssige Zeichen entfernt und man bekommt eine Datei die im schnitt 10 bis 20% kleiner ist. Für eine Komprimierung zwischendurch reicht das alle mal.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

CSS Dateien komprimieren

  • Homepage

Suche

Kategorien

  • C-Sharp (4)
  • Datenbank (25)
  • Delphi (2)
  • Entwicklung (33)
  • Flash (4)
  • Games (10)
  • Gutscheine (3)
  • Hardware (14)
  • HTML CSS (13)
  • Internet (79)
  • Java (30)
  • Javascript (22)
  • Linkdump (9)
  • Linux (93)
  • Low-Level (9)
  • Lua (8)
  • Musik (7)
  • Netzwerk (24)
  • New World Order (90)
  • Perl (3)
  • PHP (113)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (22)
  • Sicherheit (76)
  • Software (46)
  • Sonstiges (43)
  • Own Stuff (34)
  • Spass (41)
  • Technik / Wissenschaft (3)
  • Tips (15)
  • Weisheiten (10)
  • Windows (22)


Alle Kategorien

Archive

  • September 2010
  • August 2010
  • Juli 2010
  • Das Neueste ...
  • Älteres ...

Blog abonnieren

  • XML RSS 0.91 feed
  • XML RSS 1.0 feed
  • XML RSS 2.0 feed
  • ATOM/XML ATOM 0.3 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Python Sicherheit Software Sonstiges Spass Update Windows

Kommentare

Jemand zu The following packages have been kept back
Do, 02.09.2010 03:00
Danke, mir hat es auch geholfen :-)
Droht Stuttgart 21 doch noch @ Video News zu Stuttgart 21 Abriss trotz Massenproteste
Mi, 01.09.2010 17:16
Das Bauprojekt Stuttgart 21 hat fr [...]
noura zu USB-Tastatur funktioniert nicht (beim Booten)
Mi, 01.09.2010 16:16
ich danke euch für dir tips. hatte [...]
Jo zu Node no longer exists Fehler in PHP
Di, 31.08.2010 19:48
Falls beispielsweise eine große Da [...]
Lilly zu Plugin-container.exe deaktivieren
So, 29.08.2010 20:28
braucht man diesen blöden Plugin-c [...]

Beliebte Einträge

  • Magento ist scheisse (123)
  • C compiler cannot create executables unter Debian (51)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (24)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (23)
  • Zend Studio - Javaw.exe lastet die CPU aus (21)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (20)
  • USB-Tastatur funktioniert nicht (beim Booten) (18)
  • CSS: Hover-Effekt beim Internet Explorer in Tabellen (17)

Umfragen


Archive
 

Kontakt