Auch mit PHP kann man zur Laufzeit CSS-Anweisungen oder Attribute verändern und dem Kontext des Programmes oder dem Status eines Benutzers anpassen. Dabei ist PHP von der Geschwindigkeit her Javascript unterlegen und empfiehlt sich, wenn global unterschiedliche CSS-Dateien ausgewählt werden sollen. Das ist zum Beispiel bei Browserweichen interessant, die passend zum vom Client verwendeten Browser die entsprechende CSS-Datei laden.

Dabei ist PHP Javascript von den Möglichkeiten der CSS-Verarbeitung und –Manipulation her voraus. PHP ist die erste Wahl, wenn die CSS-Anweisungen und –Attribute aus einer Datenbank geladen werden sollen.

Es ist auch möglich, dem Surfer die Auswahl des Styles für eine Webseite zu überlassen. Dazu wollen wir ein kleines Programmbeispiel besprechen: Die Seite kommt normalerweise in einem blauen Design, soll aber vom Besucher auf Rot oder Grün umgestellt werden können.

Dazu werden zwei PHP-Elemente gebraucht, nämlich ein Link, der die Umschaltung als Parameter eines erneuten Seitenaufrufes steuert und ein Auswertungsteil im Header der aufgerufenen Seite. Die Link sehen wie folgt aus:

<a href=”<? basename($PHP_SELF).“?design=rot”; ?> Seite in Rot </a>
<a href=”<? basename($PHP_SELF).“?design=gruen”; ?> Seite in Gr&uuml;n </a>
<a href=”<? basename($PHP_SELF).“?design=blau”; ?> Seite in Blau </a>

Mit basename($PHP_SELF) wird der Name des aktuellen PHP-Programms ausgegeben und dann um den Parameter „design“ für die Seitenfarbe ergänzt. Dieser Parameter muss im Kopf der PHP-Datei  abgefragt und die passende CSS-Datei dazu eingebunden werden, damit das Ganze auch funktioniert. Dafür ist der folgende Code-Schnipsel zuständig:

<?
switch ($design) {
case
“rot”:
echo „
<link rel =\stylesheet\ type=\”text/css\” href=\”rot.css\”> ”;
break;
case
“gruen”:
echo „
<link rel =\stylesheet\ type=\”text/css\” href=\”gruen.css\”> ”;
break;
default:
echo „
<link rel =\stylesheet\ type=\”text/css\” href=\”blau.css\”> ”;
break;

}

Die Fallverzweigung liest den Wert des Parameters “design”, mit dem die Datei aufgerufen wurde und lädt abhängig davon eine der drei CSS-Dateien rot.css, gruen.css oder blau.css. Dabei ist blau.css als Standardwert eingetragen und würde ausgewählt, wenn bei einem Aufruf des Programms kein Designparameter mitgegeben würde.

Falls bei Ihrem Server der Initialisierungswert „register_globals“ ausgeschaltet ist, funktioniert die Übergabe des Design-Parameters so nicht. In dem Fall hilft die Zeile

$design = $_GET[design];

vor dem eigentlichen Switch-Befehl. Dadurch wird der Parameter explizit in die PHP-Variable $design kopiert und steht dem Programm zur Auswertung zur Verfügung.