öffentlich
Redaktion Druckversion

PHP lernen (1): Einführung, Installation und erste Schritte

Einbettung von PHP in HTML

Nun schreiben wir unser erstes richtiges PHP-Skript. Im Grunde kennen Sie das Beispiel schon aus dem Abschnitt Client-Server-Technologie mit PHP. Öffnen Sie Ihren Editor und schreiben in eine leere Datei ein HTML-Grundgerüst. In den Body-Tag schreiben Sie eine Ausgabe mit PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Workshop PHP lernen</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
print "Hallo Welt!";
?>
</body>

</html>

Speichern Sie diese Datei zum Beispiel unter dem Namen php1_w1_01.php in das Verzeichnis htdocs/Workshop. Rufen Sie diese Datei nun im Browser über diese Adresse auf:

http://localhost/Workshop/php1_w1_01.php

Sie sollten im Browserfenster jetzt die Worte "Hallo Welt!" sehen. Damit haben Sie Ihr erstes PHP-Skript geschrieben!

Eine einfache Ausgabe wird mit print oder echo erzeugt, Zeichenketten (hier: Hallo Welt!) werden in Anführungszeichen gesetzt. Grundsätzlich kann PHP-Code überall stehen, also auch im Head des HTML-Grundgerüsts oder vor der Ausgabe irgendeines HTML-Tags. In diesem Kapitel erzeugen wir jedoch einfache Ausgaben, die im Browserfenster ausgegeben werden sollen. Diese gehören natürlich in den Body des HTML-Dokuments. Alle weiteren Beispiele werden also im Body-Tag eines HTML-Grundgerüsts stehen. Dieses Grundgerüst wird in den weiteren Skriptbeispielen der Übersicht halber weggelassen. Die folgenden Beispiele werden alle auch ohne das Grundgerüst funktionieren. Für eine vollständige und gültige HTML-Datei brauchen Sie aber auch das HTML-Grundgerüst.

Es gehört inzwischen zum guten Stil in der PHP-Programmierung, HTML und PHP sorgfältig zu trennen. Dazu brauchen Sie aber erst einmal einige Grundkenntnisse. Um die einführenden Beispiele einfacher zu halten, schreiben wir vorerst den PHP-Code direkt in den body-Tag. Später werden wir den Code verfeinern.

PHP-Tags

Damit PHP weiß, wo der PHP-Code beginnt, wird ein PHP-Container geöffnet. Der PHP-Parser interpretiert nur die Teile des Quelltextes, die für ihn als PHP-Code kenntlich gemacht wurden. Oben wurde das Tag <?php ... ?> dafür verwendet. Alles, was vom öffnenden Tag <?php bis zum schließenden Tag ?> steht, wird vom PHP-Parser interpretiert. Alles andere gibt er als HTML-Code direkt an den Browser aus.

Insgesamt gibt es vier Möglichkeiten, den HTML-Bereich einer Skript-Datei zu verlassen und in den "PHP-Modus" zu wechseln:

  • XML-Style: <?php ... ?> oder <?PHP ... ?>

  • SGML-Style: <? ... ?>

  • ASP-Style: <% ... %>

  • JavaScript-Style: <script language="php" runat=server> ... </script>

Die ersten beiden Varianten sind die gebräuchlichsten. Sie sollten eine der beiden verwenden - diese werden von den meisten Editoren mit Syntaxhervorhebung unterstützt. Nur der Code zwischen den PHP-Tags wird vom PHP-Parser interpretiert.

Um XML-konforme Dateien zu programmieren, muss die erste Variante (<?php ... ?>) benutzt werden. Vorsicht ist beim ASP-Style (<% ... %>) geboten: Er ist auf Unix-Servern nicht erlaubt.

Anweisungen

Grundsätzlich wird jede einzelne Anweisung durch ein Semikolon abgeschlossen. Üblicherweise steht jede Anweisung in einer einzelnen Zeile.

<?php 
print "Hallo Welt!"; 
?>

Wenn Sie wie in unserem Beispiel nur eine einzige Anweisung innerhalb der PHP-Tags haben, können Sie in einer Zeile schreiben:

<?php print "Hallo Welt!"; ?>

Theoretisch können Sie bei einer einzelnen Anweisung das abschließende Semikolon weglassen:

<?php print "Hallo Welt!" ?>

Auf einem Windows NT-Server kann das aber zu Problemen führen. Setzen Sie es am besten immer. Dann können Sie es auch nicht vergessen, wenn doch noch eine weitere Anweisung dazu kommt.

Für einzeilige Ausgaben können Sie übrigens eine noch kürzere Form verwenden, indem Sie das echo oder print durch ein Gleichheitszeichen ersetzen:

<?="Hallo Welt"; ?>

Das funktioniert nur in genau dieser Schreibweise, also nur einzeilig mit dem Tag <? ... ?> und einem Gleichheitszeichen direkt hinter dem öffnenden Tag ohne Leerzeichen dazwischen <?=. Mit dieser Syntax können Sie nur eine Ausgabe erzeugen.

HTML und PHP

HTML-Code kann auch innerhalb des print- oder echo-Befehls stehen.

<?php 
print "<h1>Hallo Welt!</h1>"; 
?>

<!-- oder so: -->

<h1> <?="Hallo Welt!";?> </h1>

Es ist meist besser, PHP und HTML sauber voneinander zu trennen, also möglichst wenig HTML-Code mit PHP erzeugen. Erstens bleibt der Code dann übersichtlicher und lesbarer. Und zweitens erleichtert das die nachträgliche Bearbeitung des HTML-Codes.

Ein WYSIWYG-Editor (What You See Is What You Get) wie z. B. Macromedia Dreamweaver kann den Code innerhalb der PHP-Tags (<?...?>) nicht anzeigen.

<?php
...
print "<tr><td>Zelleninhalt</td></tr>";
...
?>

Dieser Skriptfitzel wird zwar im Browser richtig dargestellt, weil der PHP-Parser im Webserver den PHP-Code interpretiert hat (sofern die Tabelle außen herum definiert wurde!). Die Anzeige im WYSIWYG-Editor wird jedoch gar nicht erfolgen bzw. lediglich ein Symbol für den PHP-Code darstellen. Wenn Sie die komfortable Bearbeitung des HTML-Codes im WYSIWYG-Editor wünschen, schreiben Sie den PHP-Code so:

...
<tr>
<td>
<?php print "Zelleninhalt"; ?>
</td>
</tr>
...

Dieses Beispiel wird zumindest die Tabellenzeile darstellen. Das wird deutlicher, wenn wir später über Kontrollstrukturen (if ... else) sprechen und Tabellen zeilenweise innerhalb von Schleifen (for, while) ausgeben.

Umgang mit Zeilenumbrüchen

Die Tabellen lassen wir jetzt erst einmal hinter uns und beschäftigen uns mit simplen Ausgaben von Text. Ein einzeiliges Beispiel kennen Sie schon:

<?php print "Hallo Welt!"; ?>

Probieren Sie es mehrzeilig aus:

<?php 
print "Hallo Welt!";
print "Schönes Wetter heute!"; 
?>

Sie stellen anhand der Ausgabe über den Browser fest, dass genau wie im HTML-Code der Zeilenumbruch nicht automatisch erfolgt. Die Ausgabe sieht so aus:

Hallo Welt!Schönes Wetter heute!

Sie müssen den Zeilenumbruch mit <br> erzeugen:

<?php
print "Hallo Welt!"; 
?> 

<br> 

<?php
print "Schönes Wetter heute!"; 
?>

Oder so:

<?php
print "Hallo Welt!"; 
print "<br>"; 
print "Schönes Wetter heute!"; 
?>

Oder so:

<?php
print "Hallo Welt!<br>"; 
print "Schönes Wetter heute!"; 
?>

Oder so:

<?php
print "Hallo Welt!<br>Schönes Wetter heute!"; 
?>

Nun sieht die Ausgabe in allen Schreibweisen so aus:

Hallo Welt! 
Schönes Wetter heute!

Der mit den vorangegangenen PHP-Anweisungen erzeugte HTML-Code wird aber in allen Beispielen unterschiedlich aussehen. Wenn Sie dieses Skript im Browser über den Webserver aufgerufen haben, dann schauen Sie doch einmal in den Quelltext, indem Sie im Browser auf Ansicht - Quelltext klicken. Bei einem Frameset müssen Sie den Quelltext über das Kontextmenü, das Sie über die rechte Maustaste über dem entsprechenden Frame erreichen, aufrufen.

Beim ersten Beispiel werden die Ausgaben im Quelltext in mehreren Zeilen stehen, weil Sie für das break den PHP-Container verlassen und im HTML-Modus Zeilenumbrüche gesetzt haben. Diese sind genau wie in statischen HTML-Dateien im generierten Quelltext natürlich auch enthalten.

Hallo Welt! 

<br> 

Schönes Wetter heute!

Bei allen anderen Beispielen werden Sie alle mit PHP erzeugten Ausgaben im Quellcode des Browsers in einer Zeile finden:

Hallo Welt!<br>Schönes Wetter heute!

Das kann bei komplexer werdendem Code sehr unübersichtlich werden, zum Beispiel wenn Sie einen HTML-Fehler im generierten Code einer Tabelle suchen. Um im Quelltext Zeilenumbrüche zu erzeugen, benutzen Sie das Escape-Zeichen \n.

Nehmen wir das vorletzte Beispiel. Um im Quelltext hinter dem break einen Zeilenumbruch für den generierten HTML-Code zu erzeugen, fügen wir ein \n ein:

<?php
print "Hallo Welt!<br>\n"; 
print "Schönes Wetter heute!"; 
?>

Die Ausgabe bleibt unverändert zweizeilig, der generierte Quelltext im Browser enthält jetzt aber einen Zeilenumbruch:

Hallo Welt!<br>
Schönes Wetter heute!

Experimentieren Sie ein wenig und schauen Sie dabei auch immer wieder in den Quelltext, der im Browser ankommt. So können Sie am besten prüfen, welchen Code Sie über PHP generiert haben.

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Downloads zu diesem Beitrag

Newsletter abonnieren