PHP: Grundlagen, LINK-Tag schreiben

Hier finden Sie ein paar rudimentäre Angaben zur Programmiersprache PHP.
Diese sollen die Grundlage sein für das Verständnis des Anwendungsbeispiels. Dort geht es darum, wie man mit PHP ein LINK-Tag in den HEAD-Bereich einer HTML-Seite schreiben kann, um eine externe CSS-Datei einzubinden.

Einführung

PHP-Dateien sind im Grunde genommen ganz normale HTML-Dateien, die an beliebigen Stellen ein oder mehrere PHP-Element(e) enthalten. PHP wird auf dem Webserver interpretiert (falls dieser entsprechend eingerichtet ist).
Der Browser des Users kriegt nur den Output (das Resultat des PHP-Skripts) zu sehen, und das ist im Normalfall ganz normales HTML (oder auch JavaScript, wenn man Freude hat :-).

Funktionsweise von PHP

Die Datei ist auf dem Webserver gespeichert ("statischer Quelltext"). Sobald ein Browser die Datei anfordert, wird die Datei durch den Webserver interpretiert, und das Resultat davon (ich nenne es "dynamisch erzeugter Quelltext") wird an den Browser geschickt. Dieser wertet das Resultat aus und zeigt es an.

"Statischer" Quelltext der Datei auf dem Server "Dynamisch erzeugter" Quelltext, den der Server an den Browser schickt Resultat: Browser-Anzeige
...
<script language="php">
echo "Normaltext<BR><B>Fett</B>";
</script>
...
...
Normaltext<BR><B>Fett</B>
...
...
Normaltext
Fett
...

<HEAD>

<LINK REL="stylesheet" HREF="standard.css" TYPE="text/css">

<script language="php">
echo "<LINK REL=\"stylesheet\" HREF=\"ersatz.css\" TYPE=\"text/css\">";
</script>

</HEAD>

<HEAD>

<LINK REL="stylesheet" HREF="standard.css" TYPE="text/css">

<LINK REL="stylesheet" HREF="ersatz.css" TYPE="text/css">

</HEAD>

Anzeige mithilfe der Layout-Angaben in der externen CSS-Datei ersatz.css

Wichtige Unterschiede zu JavaScript:

Hinweis zur Syntax:
Ein Anführungszeichen (") wird mit einem vorhergehenden Backslash (\) sogenannt "auskommentiert":
Folgendes ist richtig:
echo "<LINK REL=\"stylesheet\" HREF=\"ersatz.css\" TYPE=\"text/css\">";

Folgendes wäre falsch:
echo "<LINK REL="stylesheet" HREF="ersatz.css" TYPE="text/css">";
Hier würde PHP den Befehl echo nur bis zum ersten zweiten Anführungszeichen interpretieren:
echo "<LINK REL="
Das Resultat wäre eine Fehlermeldung von PHP, oder es würde also nur folgender "dynamisch erzeugter Quelltext" an den Browser geschickt:
<LINK REL=

Integration von PHP in HTML

Damit eine Datei vom Webserver als PHP-Datei erkannt wird, muss sie die Endigung .php haben, also z.B. dateiname.php

Der PHP-Code kann theoretisch auf verschiedene Weise in HTML integriert werden:

Schreibweise Bemerkungen
<script language="php">
echo "Hallo Welt.";
</script>
Dies ist die unproblematischste Schreibweise.
Funktioniert wahrscheinlich auf jedem Server, der PHP kann.
<?php echo "Hallo Welt."; ?> Etwas kürzer zu schreiben.
Führt zu Problemen bei lokaler Bearbeitung der Dateien (siehe unten).
Funktioniert wahrscheinlich auf jedem Server, der PHP kann.
<? echo "Hallo Welt.";  ?> Noch kürzere Variante; gleiche Probleme.
(Auf gewissen Servern nicht erlaubt).
<% echo "Hallo Welt.";  %> Gleich kurze Variante; gleiche Probleme.
(Auf gewissen Servern nicht erlaubt).

Probleme

Manche Probleme treten nur dann auf, wenn man HTML-Dateien mit PHP-Elementen auf dem eigenen Rechner speichert, anzeigt und bearbeitet:

Browser können PHP normalerweise nicht interpretieren

Je nachdem, wie der PHP-Code in HTML integriert ist, und je nach Browser kriegt man unterschiedliche Resultate.

Die Schreibweise mit <script language="php">PHP-Befehle</script> ist grundsätzlich unproblematisch. Browser zeigen im Normalfall nichts an.
Bei der Schreibweisen mit <?php PHP-Befehl ?> und <?PHP-Befehl ?> zeigen manche Browser (gerade auch die neueren: MS IE 5.x, Netscape 6.0, Opera 5) den Quelltext oder Teile davon an.

WYSIWYG-HTML-Editoren zerstören den Quellcode

Je nachdem, wie der PHP-Code in HTML integriert ist, wird er eher in Ruhe gelassen oder eher zerstört.

Die Schreibweise mit <script language="php">PHP-Befehle</script> ist grundsätzlich unproblematisch. MS Frontpage 2000 und Dreamweaver 4 lassen den Quelltext in Ruhe.
Gefährlicher sind die Schreibweisen mit <?php PHP-Befehl ?> und <? PHP-Befehl ?> - MS Frontpage 2000 zerstört den Quelltext. (Dreamweaver 4 lässt den Quelltext auch hier in Ruhe)

Musterbeispiel: PHP schreibt den LINK zu einer externen CSS-Datei

Das folgende Beispiel schreibt eine Zeile mit einem LINK-Tag in den Kopf einer HTML-Datei.

Es ist wichtig, dass der so geschriebene LINK an der letzten Position der Liste steht, und dass er kein TITLE-Tag hat.

Damit der PHP-Code bei lokal gespeicherten Dateien von den Browsern nicht angezeigt wird, und damit WYSIWYG-Editoren den PHP-Code nicht zerstören, empfehle ich die folgende Notation:

<HEAD>
<TITLE>Testseite fuer PHP-verlinkte CSS</TITLE>
<LINK REL="stylesheet" HREF="standard.css" TYPE="text/css">

<script language="php">
echo "<LINK REL=\"stylesheet\" HREF=\"ersatz.css\" TYPE=\"text/css\">";
</script>

</HEAD>

Das Beispiel in dieser Form soll nur zeigen, wie man eine Zeile HTML-Code mit PHP in eine HTML-Datei schreiben kann.

Ein möglicher Verwendungszweck wäre z.B. folgendes:
Eine PHP-Routine prüft zuerst, ob auf dem Computer des Users ein Cookie mit einem bestimmten Wert gesetzt ist.
Wenn ja, schreibt es das LINK-Tag in die HTML-Datei, und es wird das Stylesheet ersatz.css angewendet.
Wenn nein, wird nichts weiteres in die HTML-Datei geschrieben, und es kommt das Stylesheet standard.css zum Einsatz.

Weitere Infos zu PHP, Links:

<= Zurück zur Übersicht CSS

Autor: Thomas Lüthi, luthi@my-mail.ch - Letzte Änderung: 27.12.2001