PHP als CSS einbinden?
Andy
- php
Hi,
kann ich statt einer CSS Datei auch eine PHP-Datei einbinden, die CSS ausgibt?
Also statt
<link rel="stylesheet" type="text/css" href="formate.css">
so was:
<link rel="stylesheet" type="text/css" href="formate.php?usw">
Ist so was XHTML 1.1 konform?
Andy
Halihallo Andy
kann ich statt einer CSS Datei auch eine PHP-Datei einbinden, die CSS ausgibt?
Selbstverständlich.
Ist so was XHTML 1.1 konform?
Selbstverständlich ;)
Einzig muss du darauf achten, dass dein PHP-Script den gültigen
"Content-Type: text/css" ausgibt, ob CSS als Datei oder als
PHP-Script-Ausgabe vorliegt interessiert weder den Browser, noch
irgendeinen HTML-Standard.
Viele Grüsse
Philipp
hi,
kann ich statt einer CSS Datei auch eine PHP-Datei einbinden, die CSS ausgibt?
ja, natürlich.
Ist so was XHTML 1.1 konform?
(X)HTML ist es egal, _hat_ es vollkommen egal zu sein, wie du deine ressourcen benennst - du könntest die css-datei auch "laber.suelz" oder "huselgnumpf" nennen und einbinden.
das einzige, worauf du achten solltest ist, auch einen korrekten Content-type header auszugeben (text/css).
bei .css-dateien ist dein server sicher so eingestellt, dass er das automatisch macht - bei .php-dateien wird er aber sicher text/html als default eingestellt haben. also nutze dann in deiner php-css-datei am anfang den befehl header(), um den passenden Content-type auszugeben.
gruß,
wahsaga
Hallo, Andy,
falls Du einen Querystring übergibst - und vielleicht bei PHP-Dateien sogar grundsätzlich - könnte der Browser auf die gar nicht so abwegige Idee kommen, daß der Inhalt der Datei dynamisch erzeugt wird und bei jedem Seitenaufruf die Datei nachladen.
Dies stünde dann im Widerspruch zu dem Wunsch, durch Auslagern von JavaScript und CSS-Dateien Ladezeit zu sparen.
Vielleicht kann einer der versierten Forumsteilnehmer mehr zu diesem Thema sagen und meine bloße Vermutung bestätigen oder widerlegen ...
Interessant wäre auch die Frage, ob es Sinn macht, per PHP eingebundene Stylsheets mit gzip zu komprimieren.
Grüße,
Sebastian
Hallo, Andy,
falls Du einen Querystring übergibst - und vielleicht bei PHP-Dateien sogar grundsätzlich - könnte der Browser auf die gar nicht so abwegige Idee kommen, daß der Inhalt der Datei dynamisch erzeugt wird und bei jedem Seitenaufruf die Datei nachladen.
Nicht zuletzt ist das immer von den Einstellungen am Browser des Users abhängig. Für gewöhnlich wird bei Anfragen an einen Server ein Vergleich angestrebt; insbesondere durch den ETag im HTTP-Header, der bei der erstmaligen Auslieferung vom Server aus bei statischen Datein, zu denen auch *.css gehören, mitgeliefert wird.
Dieser wird vom Client bei einer wiederholten Anfrage an die selbe Resource in einem Header If-None-Match mitgeliefert und wird vom Server verglichen. Dieser kann bei Übereinstimmung (also der Auszuliefernde Inhalt ist nicht modifiziert worden) mit einem Status 304 Not Modified antworten und gleichfalls keinen Inhalt in der Antwort mitliefern. Damit wird die Datenmenge, die ausgeliefert wird reduziert.
Ein Server liefert geparste Inhalte aus PHP-Quellen ohne ETag aus, da diese aller Voraussicht nach dynamisch sein werden und somit ein anstebenswerter Vergleich der Bandbreite wegen unsinnig ist. Möglich ist es schon diesen Vergleich durch eine eingebaute Logig auf Ebene von PHP anzustrengen, jedoch ist es meines Wissens nach nur möglich an die Request-Header heranzukommen (um diesen Vergleich erst zu ermöglichen, wenn PHP als Handler (Modul) vom Server läuft.
Interessant wäre auch die Frage, ob es Sinn macht, per PHP eingebundene Stylsheets mit gzip zu komprimieren.
Das macht dagegen sehr wohl Sinn.
Gruß aus Berlin!
eddi
Hallo, eddi und XaraX,
Ein Server liefert geparste Inhalte aus PHP-Quellen ohne ETag aus, da diese aller Voraussicht nach dynamisch sein werden und somit ein anstebenswerter Vergleich der Bandbreite wegen unsinnig ist. Möglich ist es schon diesen Vergleich durch eine eingebaute Logig auf Ebene von PHP anzustrengen, jedoch ist es meines Wissens nach nur möglich an die Request-Header heranzukommen (um diesen Vergleich erst zu ermöglichen, wenn PHP als Handler (Modul) vom Server läuft.
D.h. also, daß CSS-Files mit Endung .php immer vom Server angefordert werden, oder man zumindest mit hoher Washrscheinlichkeit damit rechnen muss?!
Schlecht für die Ladezeit, wenn man umfangreiche Stylesheets hat - die Kompression mit gzip kann das dann auch nur zum Teil ausgleichen (erste Seite lädt schneller, alle anderen langsamer als mit .css-Endung) ...
Was ist denn, wenn ich den Server so einstelle, daß auch .css-Files von PHP geparst werden - werden die dann vom Browser gecached?
Grüße,
Sebastian