# PHP-Script per CSS aufrufen



## Hatachy (4. Januar 2004)

HI !

Ich wollte gerne meine CSS-Datei durch PHP parsen lassen, sprich einige Platzhalter durch Verzeichnisse ersetzen um die immer einsetzbar zu machen (vom Prinzip her).

Habe lange gesucht. Im Forum nichts gefunden. Dann doch was gefunden und zwar beim Invisionboard (http://forums.invisionpower.com/)

Dort steht folgendes im HTML-Quelltext:

```
<style type='text/css' media="all">
@import url(css.php?d=7_1.css);
</style>
```

Ich scheine wohl zu blöd zum kopieren zu sein. Normales CSS aufrufen kann ich damit auch, aber wieso führt er bei mir nie das PHP-Script aus 

Kennt sich damit jemand aus bzw. weiß wo der Fehler liegt 

Danke schonmal.


----------



## Razorhawk (4. Januar 2004)

kann dir eventuell sagen woran das liegt.

PHP ist serverseitig und HTML (CSS) Clientseitig.
Also muss erst PHP ausgeführt werden und dann kann der Rest geparst werden.
Also wenn du verlangst, dass er den Clientseitigen Code durchgeht indem du per CSS eine URL zu einer PHP seite angibst, dann kannst du getrost lange drauf warten, dass er ihn ausführt. Das wird er nämlich nicht.


----------



## Hatachy (4. Januar 2004)

also ehrlich gesagt weiß ich nciht was du willst. ich weiß wie PHP und wie CSS funktionieren, wenn man das so sagen kann. Und darin ein PHP Script aufzurufen, seh ich auch kein Problem, wie ist es denn mit dynamischen Bildern, die im Endeffekt auch per PHP-Script "bearbeitet" werden. Da liegt ja nicht das Problem. Meine css.php funktioniert auch, bei aufruf sendet sie als Mime-Typ text/css den geänderten CSS-Code zurück. Nur irgendwie scheinen die Browser (habs mitm IE und mit Mozilla getestet) zu sehen, dass die Endung nicht .css sondern .php ist und somit garnix zu machen.

Nur beim Invisionboard funktioniert es, und zwar genauso. Das isses ja was mich wundert. Scheine halt zu blöd zum kopieren zu sein.


----------



## gullasch (4. Januar 2004)

Den rot markierten Text einfach auf jede Seite (muss mit .php enden) einfügen.


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php include("config.php"); ?> 
<html>
<head>
<style>
<?php echo $style; ?>
</style> 
</head>
...
```

dann brauchst du noch ne "config.php"-Datei


```
<?php

$style = "
//Hier deine CSS-Daten einfügen
body { color: #FF0000;
}

a:hover {
	font-weight: bold;
	color: #FF2F2F;
}
a {
	color: #000000;
	text-decoration: none;
}
body {
	font-family: Arial, Helvetica, sans-serif;
}
//ENDE mit einfügen :)
";

?>
```

greets pike aka gullasch


----------



## Hatachy (4. Januar 2004)

is ja nett, aber sorry, so könnt ichs zwar machen, die Idee hat ich auch schon, aber möchte die externe Datei schon beibehalten, da ich CSS-Deklarationen in HTML-Datein absolut störend finde.  

Ich weiß ja, dass es geht, vielleicht hab ich auch was im HTML-Quelltext vom IPB übersehen. Wäre nett, wenn da mal jemand schaut, es geht mir wirklich um diese Methode.


----------



## Fabian H (4. Januar 2004)

Du könntest mal das _import_ weglassen und stattdessen den _ink_-Tag verwenden:

```
<link rel="stylesheet" type="text/css" href="datei.php">
```

Das klappt bei mir eigentlich immer.
Notfalls einfach noch folgendes in die PHP-Datei rein:

```
header( "Content-type: text/css" );
```


----------



## gullasch (4. Januar 2004)

```
<style type='text/css' media="all">
<?php include("style.css"); ?>
</style>
```


----------



## Hatachy (4. Januar 2004)

Den Header befehl sende ich (s.o.), dennoch, auch so funktioniert der aufruf nicht. Es tut sich rein garnix.

egal ob mit Mime Angabe oder ohne, es erscheint keine Ausgabe (habe zum Test ne Echo Ausgabe eingebaut in die css.php).
ohne Echo fehlen alle Styles, was man ja leicht am weißen hintergrund z.B. erknennen kann.

@gulasch: was soll das sein ?


----------

