Was ist PHP? Dein erstes Hello World Skript
Erfahre in diesem Einsteiger-Tutorial zu PHP, was PHP ist, wofür du es brauchst und wie ein erstes kleines PHP-Skript aussehen könnte.Tags: .css-Datei | CSS lernen | HTML lernen | PHP lernen | Programmieren lernen | Web-Development lernen | Webseiten erstellen lernen | Webserver | XAMPPWorum geht´s?
Du willst PHP lernen? In diesem ersten Tutorial zu PHP werden wir uns ansehen, was PHP überhaupt ist. Außerdem werden wir unsere ersten Text-Ausgaben mit PHP programmieren, und lernen, wie PHP mit HTML, CSS und JavaScript zusammenhängt.
1. Was ist PHP?
Die Abkürzung PHP stand einst für „Personal Home Page (Tools)“, und machte über die Jahre einige Veränderungen durch. Mittlerweile steht PHP für „PHP: Hypertext Preprocessor“.
Falls es dir seltsam vorkommt, dass die ausgeschriebene Abkürzung wieder die gleiche Abkürzung enthält: das ist vermutlich eine Art von Programmierer-Witz, der sich auf das Prinzip der Rekursion bezieht, das sich in vielen Programmiersprachen wiederfindet. Eine Rekursion ist eine Funktion, die sich selbst aufruft. So etwas ist zum Beispiel nützlich, wenn man eine Ordner-Struktur durchlaufen will.
Der für dich eigentlich relevante Teil in der ausgeschriebenen Abkürzung sind jedoch die Worte „Hypertext Preprocessor“.
1.1 Wofür das Wort „Hypertext“ in PHP steht
Das Wort „Hypertext“ steht dabei dafür, dass man mit PHP nicht nur einfachen Text ausgeben lassen kann, sondern auch „verbesserten“ Text, oder eben z.B. HTML-Befehle. Es ist also möglich, mit Hilfe von PHP einzelne HTML-Seiten zu generieren.
Das Prinzip dahinter kannst du dir in etwa so vorstellen wie ein Roboter, der dir anhand einer Anleitung aus Lego-Bausteinen (die HTML-Tags) ein Lego-Bauwerk (die ganze Website) zusammenbaut.
Anstatt also z.B. 10 Links in HTML händisch reinzuschreiben:
<a href='seite1.php'>Link 1</a><br> <a href='seite2.php'>Link 2</a><br> <a href='seite3.php'>Link 3</a><br> <a href='seite4.php'>Link 4</a><br> <a href='seite5.php'>Link 5</a><br> <a href='seite6.php'>Link 6</a><br> <a href='seite7.php'>Link 7</a><br> <a href='seite8.php'>Link 8</a><br> <a href='seite9.php'>Link 9</a><br> <a href='seite10.php'>Link 10</a><br>
kann man mit Hilfe von PHP auch z.B. eine Schleife benutzen, die den selben HTML-Code für uns generiert:
<?php for ($i = 1; $i <= 10; $i++) { echo "<a href='seite".$i.".php'>Link ".$i."</a><br>"; } ?>
Wenn du im PHP Code derzeit noch nur Bahnhof verstehst ist das ganz normal – wir werden das noch Schritt für Schritt lernen.
Hier soll es erstmal nur ums allgemeine Prinzip dahinter gehen: PHP baut dir wie ein Roboter deine Website zusammen, wenn du die richtigen PHP-Anweisungen dafür gibst.
1.2 Was bedeutet das Wort „Preprocessor“ in PHP?
Ein „Preprocessor“ ist ein Prozessor, der zu einem früheren Zeitpunkt läuft, etwa um im Vorfeld schon wichtige Berechnungen durchzuführen.
In unserem Fall bedeutet das, dass ein PHP-Skript ausgeführt wird, bevor die eigentliche Website vom Webserver an den Browser des Webseiten-Besuchers geschickt wird. Denn bevor das passiert, muss die Website ja von unserem PHP-„Roboter“ erst zusammengesetzt werden.
PHP funktioniert also grundsätzlich so, dass mit jedem Website-Aufruf die Unterseite die aufgerufen werden soll neu generiert wird. Wenn das der Fall ist, nennt man ein Programm ein „Skript“ – es wird dann ausgeführt, wenn es gebraucht wird.
Im Unterschied dazu ist es bei vielen Programmiersprachen üblich, dass ein Programm, das in einer Programmiersprache geschrieben wird, nur 1x in Maschinencode oder Bytecode übersetzt werden, um dann danach z.B. eine ausführbare .exe-Datei zu erhalten.
Weil die Arbeit unserers PHP-„Roboters“ auch ein wenig Zeit in Anspruch nimmt, sollten PHP-Skripte nicht allzu lang und kompliziert sein. Sonst dauert es mitunter sehr lange, bis die fertige HTML-Seite dann zum Webseiten-Besucher geschickt und diesem angezeigt wird.
Um diesen Vorgang zu beschleunigen, gibt es unter Anderem verschiedene Cache-Lösungen. So werden Teile einer Unterseite (oder gleich die ganze Unterseite) nach dem Zusammenbauen durch das PHP-Skript in der fix-fertigen Form zwischengespeichert, und diese Version ausgeliefert, solange sich nichts an der Unterseite geändert hat.
Was für dich noch relevant sein wird: Dadurch, dass dein PHP-Skript immer neu ausgeführt wird, siehst du einen großen Teil der Fehler im Code erst beim Ausführen. Das macht die Fehlersuche etwas schwieriger als etwa in Java.
Aber nun genug der Theorie zu PHP – lass uns anfangen zu Coden!
2. Dein erstes PHP-Programm: Hello World
Bevor du in PHP programmieren kannst, brauchst du einen Webserver, der PHP unterstützt.
2.1 Einen lokalen Webserver installieren, der PHP beherrscht
Du könntest auch einen mieten, aber für den Anfang empfehlen wir dir, einen Webserver auf deinem Computer zu installieren. Einen kostenlose Webserver für Windows, Linux und Mac gibt es unter dem Namen XAMPP – hier findest du eine Anleitung zum Installieren dazu.
Für alles Weitere gehe ich mal davon aus, dass du einen lokalen Webserver mit Hilfe von XAMPP zur Verfügung hast.
2.2 Einen Ordner und eine .php-Datei in htdocs von XAMPP anlegen
Um PHP-Skriptelaufen lassen zu können, müssen diese in einer Datei mit einer .php-Endung stehen, und diese Dateien müssen sich irgendwo im Ordner htdocs deines XAMPP-Servers befinden.
Idealerweise legst du zum Testen einen eigenen Unterordner im htdocs-Verzeichnis an, damit du nicht versehentlich etwas überschreibst – in meinem Fall wäre das der Ordner „phptuts“.
Dort drin legst du eine .php-Datei an, z.B. „test.php“.
2.3 Notwendige HTML-Tags, um PHP benutzen zu können
Ein jedes PHP-Skript beginnt mit einem bestimmten HTML-Tag und endet mit einem anderen HTML-Tag:
- <?php
- ?>
Deine PHP-Skripte müssen immer zwischen diesen beiden Tags stehen, sonst funktionieren sie nicht.
Um auszuprobieren, ob PHP auf deinem Webserver ordnungsgemäß läuft, eignet sich folgendes kurzes Script:
<?php phpinfo(); ?>
Du solltest dann eine Art lila Tabelle sehen, die dir die aktuelle PHP-Version anzeigt. Mit Stand Juni 2022 wäre das dann z.B. PHP 8.1.6 oder eine ähnliche.
Was aber, wenn wir irgendetwas anderes ausgeben wollen?
Dann brauchen wir den PHP-Befehl echo:
2.4 Textausgabe in PHP mit dem PHP-Befehl echo
Der Befehl echo sagt PHP, dass er irgendetwas ausgeben soll, also den angeführten Text (oder was auch immer angeführt ist, kann z.B. auch eine Zahl, eine Rechnung oder Variable sein) auf dem Bildschirm anzeigen soll:
<?php echo "Hallihallo!"; ?>
Der obige Code zeigt das Wort „Hallihallo!“ an.
Damit PHP weiß, wann der auszugebende Text beginnt und endet, musst du davor und danach die Anführungszeichen setzen.
Grundsätzlich ist es auch möglich, einfache Anführungsstriche zu setzen (auf deutschen Tastaturen meist über der Raute zu finden). Wichtig ist nur, dass der Beginn und das Ende eines solchen Textblocks (üblicherweise auch „String“ genannt) das gleiche Anführungszeichen verwendet.
Möglich ist also z.B.:
- „Hallihallo!“
- ‚Hallihallo!‘
Falsch wäre aber:
- „Hallihallo!‘
- ‚Hallihallo!“
3. Wie du das Ergebnis deiner PHP-Skripte im Browser ansehen kannst
Vielleicht hast du intuitiv versucht, die Datei deines PHP-Skripts im Browser zu öffnen. Leider funktioniert das nicht so.
Was du stattdessen tun musst, ist das Skript über deinen Webserver aufzurufen.
Falls du XAMPP verwendest (und der Webserver grün ist, also eingeschaltet ist), kannst du über die Adresszeile deines Browsers „localhost“ und den entsprechenden Unterordner bzw. die Datei eingeben. In meinem Fall wäre das dann „http://relativemeister.com/phptuts/test.php“.
Verwendest du stattdessen einen „richtigen“ gemieteten Webserver, musst du entsprechend eine Domain wie z.B. „relativemeister.com“ statt „localhost“ einfügen.
4. Wie du PHP mit HTML-Tags kombinieren kannst
4.1 Ausgabe von HTML-Tags in PHP mit dem PHP-Befehl echo
Da PHP ja unser freundlicher „Roboter“ ist, der uns unsere Website zusammenbaut, müssen wir auch irgendwie HTML-Tags ausgeben können.
Anstatt also reinen Text mit echo auszugeben, ist es auch möglich, diesen Text mit HTML-Tags zu kombinieren:
echo "<a href='contact.php'>Geh zur Kontakt-Seite</a><br>";
Der Vorteil dieser Technik ist es, dass man z.B. wie weiter oben schon verwendet Schleifen nutzen kann, um Webseiten effizienter erstellen zu können.
Der Nachteil ist jedoch, dass man so überall einen echo-Befehl verwenden müssen, selbst dort, wo wir eigentlich doch nur einige HTML-Tags ausgeben lassen wollen.
Für diesen Fall gibt es zum Glück eine bessere Lösung:
4.2 Ausgabe von HTML-Tags in PHP ohne den PHP-Befehl echo
Da wir in PHP mit Hilfe des öffnenden und des schließenden PHP-Tags bestimmen können wo unser PHP-Skript beginnt und aufhört, können wir unseren PHP-Code einfach nur auf die Teile beschränken, wo wir tatsächlich auch PHP brauchen.
Alles außerhalb der PHP-Tags funktioniert nämlich, als wäre die .php-Datei eine .html-Datei – so können wir die Vorteile beider Möglichkeiten kombinieren:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Überschrift 1</h1> <?php for ($i = 1; $i <= 10; $i++) { echo "<a href='seite".$i.".php'>Link ".$i."</a><br>"; } ?> </body></html>
5. Wie du PHP mit CSS und JavaScript kombinieren kannst
Da deine PHP-Skripte ja HTML-Code ausgeben können, kannst du CSS-Dateien und JavaScript-Dateien genauso einfügen, wie du das auch in reinem HTML machen würdest: im <head>-Bereich deines HTML-Dokuments:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Überschrift 1</h1> <?php for ($i = 1; $i <= 10; $i++) { echo "<a href='seite".$i.".php'>Link ".$i."</a><br>"; } ?> </body> </html>
Du merkst womöglich schon, dass PHP sich recht nahtlos in die Möglichkeiten der Web-Programmierung einfügt, die du bereits beherrscht.
Weil du in PHP hauptsächlich HTML-Code generieren wirst, den du mit Hilfe von CSS stylen wirst, macht es Sinn, mit HTML und CSS zu beginnen.
Nun, mit PHP, wird die Sache erst so richtig interessant 🙂