php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.04.2010, 11:04  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard Gzip CSS Browsercache

Hallo,

bin gerade bei meine css files zu komprimieren. Ich kenne eigentlich alle methoden (mod_deflate, htaccess, direkt in die css und in php umbenennen usw.).

Ich habe mich trotzallem für die einfachste aber für mich effektivste Methode entschieden. Ich schreibe einfach

Code:
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
header('Content-type: text/css');
ob_start("ob_gzhandler");
in die css datei ganz oben und benenne Sie in php um.

Frage: Ist die Browserunterstützung bei allen Browsern aufgrund der Umbenennung trotzdem gegeben? ich möchte eigentlich ungern auf das Caching durch den Browser verzichten auch wenn ich durch die komprimierung einiges einspare sollte die datei nicht dauerhaft ausgeliefert werden nur weil Sie jetzt php und nicht css heisst.
Ich denke durch
header('Content-type: text/css');
sagt man dem browser das es eine css datei ist und er behandelt die php datei dann wie eine css aber ich bin mir nicht sicher.

danke für eine Rückmeldung!
marc77 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.04.2010, 12:08  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo marc77,

ich finde die Variante nicht besonders einfach. Füge doch in der .htaccess einfach eine Anweisung hinzu, dass deine CSS-Dateien als PHP-Dateien zu behandeln sind.

Was den GZ-output-Handler von PHP angeht, so brauchst du keine Abfrage, er entscheidet das an Hand von Request-Headern selbst. Die Browser-Unterstützung ist IMHO kein Problem, denn du sagst dem Browser ja, was er erwarten kann: text/css.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 07.04.2010, 12:45  
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 173
PHP-Kenntnisse:
Anfänger
Griffith sorgt für eine eindrucksvolle AtmosphäreGriffith sorgt für eine eindrucksvolle Atmosphäre
Standard

Belastet den Server soetwas nicht unnötig?
So muss ja bei jedem Aufruf einer CSS-Datei diese erst komprimiert werden.

Besser wäre es doch, wenn man die CSS-Datei einmal komprimiert als GZIP oder Deflate-Stream abspeichert.
Der Server brauch dann nur noch die fertige GZIP / den fertigen Deflate-Stream senden, was die CPU schont.

Wie setzt man sowas im Apache um?
Griffith ist offline  
Alt 07.04.2010, 12:49  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard

@: Füge doch in der .htaccess einfach eine Anweisung hinzu, dass deine CSS-Dateien als PHP-Dateien zu behandeln sind.

das habe ich bereits probiert, bekomme aber immer einen 500 Servererror. ich habe root access..weiss aber nicht wie der code für mich heissen muss. habe schon einige probiert, wie kann ich den rausfinden was genau dort stehen soll?

PHP-Code:
AddHandler application/x-httpd-php css 
Ich habe auf all meinen php seiten diese ob_start("ob_gzhandler"); variante aktiv. Ist das jetzt im Grunde falsch?! dachte ich mach damit was gutes...
marc77 ist offline  
Alt 07.04.2010, 14:36  
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 173
PHP-Kenntnisse:
Anfänger
Griffith sorgt für eine eindrucksvolle AtmosphäreGriffith sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von marc77 Beitrag anzeigen
Ich habe auf all meinen php seiten diese ob_start("ob_gzhandler"); variante aktiv. Ist das jetzt im Grunde falsch?! dachte ich mach damit was gutes...
Für den Benutzer ist das defintiv was gutes.

Mein Argument mit der CPU-Auslastung war auch nur eine Frage. Kann gut sein, dass das minimal ist. Hängt evtl auch vom Kompressionsgrad ab.

Da sich CSS-Dateien ja kaum ändern, denke ich, sollte man da doch irgendwie auch "vorkomprimierte" Daten ausliefern können. Einmal komprimieren, beliebig oft senden.

Bei dynamischen PHP Seiten muss man ja zwangsläufig ob_start("ob_gzhandler"); verwenden, weil der Inhalt fast immer anders ist.
Griffith ist offline  
Alt 07.04.2010, 14:41  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard

man könnte für css z.b. auch ein verfalldatum setzen, allerdings hat man dann das problem, dass wenn man etwas ändert die änderung erst nach dem Verfalldatum greift und das kann wiederum zu darstellungsfehlern kommen.
marc77 ist offline  
Alt 07.04.2010, 16:34  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von marc77 Beitrag anzeigen
ich möchte eigentlich ungern auf das Caching durch den Browser verzichten
Dann musst du es in diesem Falle selber implementieren - weil PHP-Scripte per Default mit Headern ausgeliefert werden, die das Caching komplett untersagen.

(Das selber zu implementieren, erfordert Kenntnisse über den Umgang mit dem HTT-Protokoll.)

Zitat:
Ich denke durch
header('Content-type: text/css');
sagt man dem browser das es eine css datei ist und er behandelt die php datei dann wie eine css aber ich bin mir nicht sicher.
Man sagt dem Client damit, um welche Art von Daten es sich beim Inhalt der Ressource (nicht „Datei“) handelt.
Darüber, wie in Punkto Caching zu verfahren ist, sagt das überhaupt nichts.
ChrisB ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fragen zu GZIP slaughter PHP-Fortgeschrittene 4 09.02.2010 23:48
gzip und mod rewrite auf Bilder? BlackScorp Server, Hosting und Workstations 8 19.01.2010 14:39
Javascript als GZip einbinden stayInside JavaScript, Ajax und mehr 0 28.02.2009 01:18
browser compressions, nur gzip ausgabe brian johnson PHP Tipps 2008 10 26.01.2008 23:02
include und Browseraktualisierung (Browsercache) hans.karl2 PHP-Fortgeschrittene 1 04.08.2007 18:31
gzip klasse verwenden oder nicht? danysahne333 PHP Tipps 2006 3 02.04.2006 13:58
ACCEPT-ENCODING: gzip, regex ermittlung Andreas PHP-Fortgeschrittene 7 04.02.2006 16:52
Dateien entpacken (GZIP) PHP Tipps 2006 2 26.01.2006 13:46
probleme mit Gzip chiliGREEN PHP Tipps 2005-2 10 09.10.2005 16:38
was ist gzip chiliGREEN PHP Tipps 2005-2 1 09.09.2005 22:05
rar, zip, gzip etc. > Sicherheitsrisiko? PHP Tipps 2005 5 10.05.2005 13:07
[Erledigt] gzip problem PHP-Fortgeschrittene 3 15.07.2004 17:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
gzip css, gzip css htaccess, css gzip, php gzip, htaccess gzip css, gzip-css.php, gzip css php, g_zip css, php text gzip, gzip browser, rename php functions automatic bulk, php gzip browser problems, gzip css problem darstellung, gzip browser php, gzip css caching, php gzoutput regexp, gzip css 2010, fehlermeldung griffith diese datenbank erfordert eine neuere version von, css gzip deflate, deflated stream senden

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum