dynamische CSS-Datei schreiben

M

mir

Tach!

Kann man eine Datei ERST von PHP interpretieren lassen UND sie DANN mit
fwrite erstellen?

Ich möchte je nach Bedarf mir eine neue CSS erstellen.
BTW: ist das überhaupt sinnvoll?
Dazu habe ich die Datei config.all, die die jeweilige Farbe bestimmt.

Datei: config.all - Auszug
if ($nav=="kontakt") {
$color = "#FF9900";
$titel = "mirstation.de -|- formloser formmailer & föllig komisches Gästebuch";
$logo_h = "images/logo_chg_home.jpg";
$logo_l = "images/logo_chg_home_low.jpg";
}
'''''ENDE

Dann gibt es die Datei css.inc, in der die Variablen der Farben ersetzt werden.
Zumindest soll das so geschehen. Bei einem include geht das ja auch, wie es nunmal ist...
Datei: css.inc - Auszug
.nav {
background-color: <?php echo $color ?>;
color: white;
}

.footer {
font-size : 10px;
background-color: <?php echo $color ?>;
color: white;
text align : right;
padding-right : 30px;
}
'''''ENDE

Nachdem mun IMO alle wissen, was sie zu tun haben, und wie sie
auszusehen haben sollte es ein Leichtes sein die CSS dynamisch zuschreiben.
Datei: machcss.php
<?
require ("config.all");

$datei=FOPEN("formate.css", "w");

$str = implode("",@file("css.inc"));

fwrite($datei, $str);

fclose($datei);
?>

Leider Schlag ins Wasser! Die machcss.php öffnet natürlich die Text-Version
von css.inc und interpretiert sie nicht erst.

Ideen? Tips? heissen Kaffee?
Guido
 
Is zwar a bisserl stümperhaft, aber...

durchlauf einfach die css.inc zeilenweise

und dann ersetz z.B. die Zeichenfolge <?php echo $color ?>
durch $color

So gehts glaub ich am einfachsten
 
Ganz einfach: PHP interpretiert auch nur die Dateien mit der in der configuration angegebenen Dateiendungen: Mach css.inc zu css.inc.php und es sollte so funktionieren wie Du es erwartest ....

:-)

Außerdem wird die Datei nicht geparst, wenn Du sie über file() einliest, selbst wenn es eine *.php Datei ist. Du kannst aber mit Platzhaltern arbeiten und dann PHP anweisen im eingelesenen File die Platzhalter mit den passenden Inhalten zu ersetzen.
 
Zuletzt bearbeitet:
Zurück