PHP
logo5

Variablen kennt man aus dem Mathematikunterricht. Das sind Kombinationen von Buchstaben. In PHP werden Variablen verwendet, um Inhalte (z. B. Text oder Zahlen) darin zu speichern.
Variablen können beliebige Namen haben, Groß- und Kleinschreibung ist zu beachten.
Damit PHP jetzt aber erkennt, dass es sich bei einem Wort um den Namen einer Variable handelt wird davor ein Dollarzeichen ($) gesetzt.
So kann das aussehen:

<?php
$zeit = "09:40 Uhr" ;
?>

Damit wird eine Variable namens zeit definiert und ihr der Inhalt 09:40 Uhr zugewiesen. Die Zuweisung erfolgt durch das = und dem Inhalt der Variable, der in Anführungszeichen gesetzt wird.

In PHP muss ein Variablenname mit einem Buchstaben oder einem Unterstrich (_) beginnen. $2uhr ist nicht möglich - $_2uhr jedoch schon. Danach brauchen wir ein Semikolon (;), um die Zeile abzuschließen.

Nun gut, aber wozu brauchen wir das? - Wir können jetzt nach <?php echo statt des Textes die Variable einsetzten, also so:

<?php echo $zeit ;?>  oder
<?php echo "",$zeit, "" ;?>

Beide Male sehen wir im Browser nur

09:40 Uhr

Nun, es ist damit ganz einfach möglich, den Text mehrmals zu verwenden, ohne ihn jedes Mal neu schreiben zu müssen. Das ist vor allem bei langen Inhalten sehr interessant.

Wenn wir jetzt also den Text

Die Pause beginnt um 09:40 Uhr und nicht vorher. Bis 09:40 Uhr wird gearbeitet.

schreiben wollen, verwenden wir dazu folgenden Code (in einer Zeile):

<?php echo "Die Pause beginnt um " ,$zeit, " und nicht vorher. Bis " ,$zeit, " wird gearbeitet." ; ?>

Das schaut jetzt auf den ersten Blick sehr kompliziert aus und ich muss auch zugeben, dass in dem Fall auch die Schreibeweise mit

<?php echo "Die Pause beginnt um $zeit und nicht vorher. Bis $zeit wird gearbeitet." ; ?>

möglich wäre.

Nun belegen wir die einzelnen Teile des Satzes mit Variablen:

<?php
$pause = "Die Pause beginnt um " ;
$zeit = "09:40 Uhr" ;
$vorher = " und nicht vorher. Bis " ;
$arbeit = "wird gearbeitet." ;
?>

Danach geben wir folgendes ein:

<?php echo "$pause$zeit$vorher$zeit $arbeit" ;?>

Die einzelnen Teile des Satzes (also die Variablen) werden einfach aneinander gereiht. Da beim "wird gearbeitet." das Leerzeichen davor fehlt, binde ich es durch das Leerzeichen nachträglich ein. Bei den anderen Varablen habe ich die richtigen Leerzeichen schon entweder am Anfang oder am Ende - oder Beides - gesetzt. Daher kann man sie direkt aneinanderreihen.

Eine kleine Besonderheit haben diese Variablen jetzt noch: man kann sie erweitern.

Wir verwenden jetzt die Variable $text und verlängern (erweitern) diese.

<?php
$text = "Heute ist" ;
$text .= " Mittwoch!" ; 
?>

Siehst du den Punkt vor dem zweiten Ist-Gleich? Durch den Punkt wird die Variable $text so erweitert, dass Heute ist Mittwoch! darin enthalten ist. Wenn du keinen Punkt verwenden würdest, würde die Variable zunächst den Text Heute ist enthalten und dann durch Mittwoch! überschrieben werden, da durch das reine Ist-Gleich ein neuer Wert zugewiesen wird.

Du kannst den Punkt auch verwenden, um Variablen miteinander zu verbinden.

<?php
$kompletter_Satz = $pause.$zeit.$vorher.$zeit.$arbeit ;
?>

Wenn wir diese Variable jetzt ausgeben, fehlt natürlich wieder unser Leerzeichen, das wir ebenfalls einbinden können. Das sieht dann so aus:

<?php
$kompletter_Satz = $pause.$zeit.$vorher.$zeit." ".$arbeit ;
?>

Der normale Text wird ebenfalls mit Punkten verbunden, muss jedoch in Anführungszeichen gesetzt werden.

Lernt man eine neue Programmiersprache, soll als erstes die Ausgabe des Textes "Hello World" gelernt werden. Es kommt dabei nicht so sehr auf den Text an (von mir aus kannst du auch "Hallo Uhu" verwenden), als viel mehr darauf, dass eine Anzeige von Text zu den absolut elementaren Dingen zählt.

Wir legen daher am Webserver in einem beliebigen Ordner eine Datei mit dem Namen hallo.php an und schreiben in diese Datei nur

<?php echo "Hello World";?>

Die Farben brauchst du natürlich nicht. Das nennt sich Syntax-Highlighting und dient dazu, den Code einfacher lesbar zu machen. Das ganze wird abgespeichert und anschließend über den Browser aufgerufen (... localhost/beliebiger Ordner/hallo.php) oder auf deinen Webspace hochgeladen und von dort aufgerufen.

Im Browser steht jetzt einfach Hello World - vollkommen unformatiert.

So, was heißt denn das, was wir da geschrieben haben überhaupt?

<?php

Die spitze Klammer und das Fragezeichen werden immer dann verwendet, wenn man PHP verwenden möchte. Eine ähnliche Vorgangsweise ist ja auch aus HTML bekannt. Dabei werden die Befehle mit <Befehl> eingeleitet und mit </Befehl> beendet. In PHP verwenden wir <?php und ?> als Anfangs- und Endezeichen. Alles, was zwischen diesen Zeichen steht, wird als PHP-Code interpretiert.

Danach steht jetzt
echo "Hello World";
Das beinhaltet zunächst die Anweisung, dass ein Text ausgegeben werden soll. Alternativ zum Befehl echo kann man auch den Befehl print verwenden. Bei mir wirst du allerdings immer echo finden, einfach weil es mir sympathischer ist.

In Anführungszeichen folgt dann der Text, der ausgegeben werden soll. Dieser Text wird beim Parsen (dem Umwandeln von PHP-Code in HTML und dem Ausführen von Befehlen) in die HTML-Datei geschrieben. In unserer Datei steht jetzt also lediglich Hello World (du kannst gerne über Quelltext anzeigen nachschauen :-))

Das abschließende Semikolon (;) ist bei jeder PHP-Anweisung notwendig. Es gibt sozusagen bekannt, wo die Anweisung zu Ende ist.

Mit dem beendenden
?>
wird der PHP-Block abgeschlossen.

Innerhalb der Anführungszeichen kannst du auch ohne Probleme HTML-Code verwenden und damit deinen Text formatieren. Das einzige, worauf du achten musst, sind Sonderzeichen.

Damit meine ich nicht die aus HTML bekannte Maskierung für Umlaute (wie &auml;) sondern Sonderzeichen für PHP.

Du hast ja oben gesehen, dass wir den Text in Anführungszeichen gesetzt haben. Das birgt das Problem, dass ein Anführungszeichen als Ende der Zeichenkette (des Textes) angesehen wird und es dadurch zu Problemen kommen kann. Wenn wir z. B. den Code

<?php echo "Hello "World""; ?>

verwenden wollen, erscheint beim Aufrufen der Datei eine Fehlermeldung (parse error).

Um also Anführungszeichen zu verwenden, müssen wir sogenannte Maskierungszeichen einsetzten. Ein solches Maskierungszeichen ist der Backslash (\).

Der richtige Code sieht daher so aus

<?php echo "Hello \"World\""; ?>

Jetzt wird als Text Hello "World" ausgegeben.

Beachte bitte, dass nur die Anführungszeichen, die angezeigt werden sollen, einen Backslash vorangestellt bekommen. Das einleitende und das abschließende Anführungszeichen stehen ohne ein Maskierungszeichen da.

Was passiert jetzt aber, wenn wir einen Backslash verwenden wollen? Der muss natürlich auch ein Maskierungszeichen erhalten. Also würde der Befehl zum Anzeigen von c:\windows so aussehen:

<?php echo "c:\\windows"; ?>

Ein doppelter Backslash, damit einer angezeigt wird.

Auch für Zeilenumbrüche gibt es eine Art Maskierung - \n (nicht zu verwechseln mit dem <br> bzw. <br /> für einen sichtbaren Zeilenumbruch).

Wie gesagt ist es auch problemlos möglich, HTML-Code zur Formatierung zu verwenden. Also z. B.

<?php echo "<h2>Hallo du!</h2>"; ?>

Nur muss auch hierbei darauf geachtet werden, dass Anführungszeichen einen Backslash vorangestellt bekommen.

Es ist übrigens auch kein Problem in einer Datei teilweise PHP und teilweise HTML zu verwenden:

<html>
<head>
<title>Meine Seite mit PHP</title>
</head>
<body>
<h2>Willkommen</h2>
<br />
<?php echo "Schön, dass du da bist!"; ?>
</body>
</html>

Den Text mit PHP ausgeben zu lassen hat in diesem Beispiel natürlich keinen Sinn. Es soll nur aufzeigen, was möglich ist. So kann man auch mehrere PHP-Bereiche in einer Datei definieren.

dbjoomlaPHP ist eine Programmiersprache, die am Server ausgeführt wird. Dort wird sie "geparsed", das heißt, der Code wird umgewandelt, so dass für den Nutzer nur mehr ganz normaler HTML-Code sichtbar ist. Das hat den großen Vorteil, dass eigentlich niemand den Code stehlen kann - weil er ihn einfach nie sieht. Der Nachteil ist leider, dass man nicht wie bei HTML-Dokumenten nachschauen kannst, wie etwas geht.

Jedoch unterstützt nicht jeder Webserver standardmäßig PHP. Daher muss vorher mit dem Provider abgeklärt werden, ob es installiert ist. Auf dem eigenen Computer zu Hause muss ein virtueller Webserver installiert werden. Z.B. XAMPP in Versionen für verschiedene Betriebssysteme.

Wenn der Webserver funktioniert kann man Dateien, die im "Pfad zu Xampp"\xampp\htdocs-Ordner liegen im Browser über http://localhost/dateiname aufrufen. Diese haben bei php immer die Endung .php