Jonas: Inhalte für CSS über MySQL und Php defineren

Hallo,
mal ne blöde Frage:
Wie kann man via PHP und MySQL eine CSS Datei beeinflussen.
z.B. habe eine Tabelle in der Datenbank in der ich die Grundelemente meiner Website definiere also z.B. Schriftart, Schriftgröße, Background etc.
Mache via PHP eine Datenbankabfrage und möchte das Ergebniss in der CSS Datei einfügen

body {
 font-family: <?php echo $schrift;?>;
 font-size: <?php echo $größe;?>;
 margin: <?php echo $rand;?>;
}

Damit erkannt wird, daß es sich um php handelt muß die Datei dann doch auch mit der Endung .php gespeichert werden.
Aber css Datein benötigen die Endung .css oder ist das egal - kann ich dafür jede Dateierweiterung nehmen?

Danke und Grüße,
Jonas

  1. Hi,

    Damit erkannt wird, daß es sich um php handelt muß die Datei dann doch auch mit der Endung .php gespeichert werden.

    Nein.
    Du kannst jede belieibige Datei als PHP parsen lassen - und auch Dateien ganz ohne "Endung".

    Aber css Datein benötigen die Endung .css oder ist das egal - kann ich dafür jede Dateierweiterung nehmen?

    Letzteres natuerlich.

    So etwas wie eine "Dateiendung" existiert im HTTP-Umfeld nicht - nicht mal so etwas wie eine "Datei".
    Es existieren nur Ressourcen - und wie die vom Client zu behandeln sind, wird ueber die entsprechenden HTTP-Header angegeben.

    MfG ChrisB

  2. Hi Jonas,

    Aber css Datein benötigen die Endung .css oder ist das egal - kann ich dafür jede Dateierweiterung nehmen?

    Die Dateiendung ist vollkommen egal, wichtig ist, dass der Webserver als „Content-Type” den für die Datei korrekten MIME-Type angibt. Dies kannst du erreichen, indem du an den Anfang deiner PHP-Datei folgendes schreibst:

    header('Content-Type: text/css');

    Wie unschwer zu erkennen, ist text/css also der MIME-Type für CSS-Dateien ;-) Normalerweise nimmt z.B. der Apache-Webserver dir diese Arbeit ab, weil er anhand der Endung .css eine Datei vom Typ text/css erwartet (Konfigurationssache), da der Webserver dies aber nicht erkennt, wenn du eine Endung .php verwendest, musst du hier manuell den Content-Type dem Browser mitteilen.

    Viele Grüße,
      ~ Dennis.