PHP Grundlagen: Das kurze PHP-Tutorial für Einsteiger
Veröffentlicht am 26.07.2023 von DomainFactory
PHP steht für dynamische Inhalte im World Wide Web. Ohne PHP wären Webseiten statisch und langweilig. Doch wie funktioniert PHP eigentlich? Was steckt dahinter und wie leicht kann man es erlernen? Wir lüften die "Geheimnisse" über eine der wichtigsten Scriptsprachen des Internets.
Um die Funktionsweise von PHP zu erläutern, begeben wir uns in unserem PHP-Tutorial auf eine kleine Zeitreise in die Entstehungsphase des Internets. Zu Beginn der 90er Jahre erlebte das Internet mit der Einführung des HTTP (Hypertext Transfer Protocol) seinen Urknall. Nach zweijähriger Entwicklung sorgte die neue Webtechnologie dafür, dass Hypertexte zwischen einem Webserver und einem Webbrowser übertragen werden konnten. Der Grundstein für das World Wide Web war gelegt.
Innovativ aber statisch – Hypertext als Schlüsseltechnologie des Internets
Hypertext wurde seitdem in HTML (Hypertext Markup Language) geschrieben. Die Besonderheit von Hypertext gegenüber normalem Text lag darin, dass er nicht linear gelesen werden muss. Stattdessen enthält ein Hypertext Querverweise in Form von Links, die entweder auf interne Textpassagen oder sogar auf andere Hypertext-Dokumente verweisen können. Auf diese Weise entsteht ein informationstechnisches Netzwerk, das ursprünglich für Enzyklopädien und Forschungsergebnisse entwickelt wurde.
So innovativ der Hypertext gegenüber konventionellen Texten auch war, handelte es sich aber noch immer um ein völlig statisches Dokument. Obwohl es revolutionäre Strukturen ermöglichte, entbehrte es noch jeglicher inhaltlicher Dynamik. Um diese Statik des HTML-Formats aufzubrechen, war eine Zwischeninstanz erforderlich. Das war die Geburtsstunde serverseitiger Programmiersprachen wie Java, Perl und eben auch PHP.
PHP – der Baukasten für dynamisches HTML
Das Kürzel PHP steht für „PHP: Hypertext Preprocessor“ und ist somit ein rekursives Akronym, da es das Kürzel selbst enthält. PHP wurde im Juni 1995 veröffentlicht - und damit lange nach Perl, das viele Gemeinsamkeiten mit PHP aufweist. Bis heute hat sich PHP zum Standard und Marktführer entwickelt - rund 80 Prozent aller Webseiten basieren auf PHP. Allein die Tatsache, dass viele Content Management Systeme (CMS) wie WordPress oder Joomla auf PHP basieren, verdeutlicht, wie wichtig PHP inzwischen ist.
Doch was macht PHP denn nun eigentlich?
PHP ist vergleichbar mit einem Baukasten, der aus zur Verfügung stehenden Informationen eine dynamische HTML-Seite erzeugt. Nehmen wir mal an, Sie möchten eine kleine Internetseite erstellen, die das aktuelle Datum anzeigt und dem Benutzer je nach Tageszeit einen „Guten Morgen“, „Guten Tag“ oder „Guten Abend“ wünscht. Gäbe es weder PHP noch vergleichbare Scriptsprachen, wäre diese Aufgabe nur schwer lösbar.
Ohne PHP müsste man eine statische HTML-Seite anlegen und dann einmal am Tag für das Datum und anschließend noch mehrmals die Einstellung für die entsprechende Tageszeit bearbeiten. Nur so wäre sichergestellt, dass das gewünschte Ergebnis erreicht wird. Mit PHP wird das komfortabel automatisiert. Statt einer statischen HTML-Datei legt man eine PHP-Datei auf dem Webspace ab. Diese PHP-Datei wird bei jedem Aufruf dann zunächst vom Webserver „interpretiert“.
Ein Webserver wie Apache oder nginx, der mit PHP kompatibel ist, kann PHP-Quellcode interpretieren. Das bedeutet, dass er den Programmcode auswertet und in das gewünschte Ergebnis umwandelt. Grundsätzlich hat eine PHP-Datei viele Gemeinsamkeiten mit einer HTML-Datei. Das geht sogar so weit, dass man jede HTML-Datei einfach von .html in .php umbenennen könnte. Eine PHP Datei wird nämlich als HTML-Datei mit zusätzlicher PHP-Funktionalität verarbeitet.
Klingt kompliziert - ist es aber gar nicht. So kann jede PHP-Datei jeden beliebigen HTML-Quellcode enthalten. Erst wenn man gezielt PHP-Blöcke einbaut, hält die gewünschte Dynamik Einzug. Ein PHP-Block beginnt mit <?php und endet mit ?>. Dazwischen passiert dann, was moderne Webseiten ermöglicht, wie wir sie jeden Tag besuchen.
PHP = HTML + Dynamische Funktionalität
Zurück zu unserem Vorhaben, eine Webseite mit dem aktuellen Datum und der tageszeitabhängigen Begrüßung zu realisieren. An der Stelle, an der wir normalerweise einfach ein statisches Datum in den Hypertext schreiben würden, wird nun ein PHP-Block eingesetzt. Dieser enthält eine PHP-Funktion, die das aktuelle Datum vom Server bezieht und zurückgibt.
Dieser Rückgabewert wird einfach in einer gewünschten Formatierung im Quellcode ausgegeben:
<?php echo date(„d.m.Y“); ?>
Mit echo wird der Rückgabewert der PHP-Funktion “date” im Quellcode ausgegeben. Das “d.m.Y” führt zu einer formatierten Ausgabe mit zweistelligem Tag, zweistelligem Monat und vierstelligem Jahr – jeweils getrennt durch einen Punkt.
An der Stelle, an der wir den Besucher begrüßen möchten, fügen wir nun ebenfalls einen PHP-Block ein. Diesmal konstruieren wir mit PHP eine Fallunterscheidung, mit der je nach Tageszeit ein guter Morgen, Tag oder Abend in den Quellcode geschrieben wird. Fertig ist unsere dynamische Begrüßung. Wir erinnern uns: PHP bedeutet „PHP: Hypertext Preprocessor“. Es bereitet den Hypertext vor, indem es ihm die dynamischen Inhalte einflößt und den fertig zusammengebauten HTML-Code bereitstellt.
= 3) && (date("H") < 12)) { $tzeit = 'Morgen'; } else if ((date("H") >= 12) && (date("H") < 18)) { $tzeit = 'Tag'; } else { $tzeit = 'Abend'; } echo "Guten $tzeit!"; ?>
Mit der if-Anweisung wird abgefragt, in welchem Bereich sich die aktuelle Stunde (date(“H”)) befindet. Entsprechend wird die Variable $tzeit mit “Morgen”, “Tag” oder “Abend” belegt. Am Ende wird die Variable im Verbund mit “Guten” im Quellcode ausgegeben.
Alle Last beim Server – warum guter PHP-Quellcode so wichtig ist
Was im Browser des Internetusers oder der Internetuserin letztlich ankommt, ist völlig statisches HTML. Der gesamte Vorgang der Interpretation des PHP-Codes, also der Anreicherung mit dynamischen Inhalten, wird vollumfänglich serverseitig vollzogen. Das ist auch der Grund dafür, warum eine saubere und gut strukturierte PHP-Entwicklung so wichtig ist. Je mehr Zugriffe eine Webseite hat, desto häufiger muss ein Webserver PHP-Dateien interpretieren, bevor er den assemblierten HTML-Code ausliefern kann.
Ist hier "Sand im Getriebe", führt das schnell zu langen Ladezeiten und hohen Absprungraten.
Ach ja: Sein volles Potenzial entfaltet PHP übrigens erst mit einer Datenbankanbindung. Über unterschiedliche Extensions kann PHP daher zum Beispiel eine Verbindung zu einer MySQL-, Mongo- oder Postgre-Datenbank herstellen. Dadurch lassen sich Inhalte dann direkt aus einer Datenbank laden und in den HTML Code implementieren.
Was unterscheidet PHP und JavaScript?
Während PHP komplett serverseitig abläuft, wird JavaScript (Vanilla, jQuery etc.) ausschließlich vom Webbrowser des Besuchers interpretiert. Auch mit JavaScript lassen sich dynamische Inhalte generieren. Der Unterschied ist, dass PHP die Inhalte dynamisch zusammenbaut und als fertigen HTML-Code ausliefert. JavaScript nimmt dagegen eher nachträglich Veränderungen am HTML-Code vor. Moderne Webseiten basieren in fast allen Fällen auf einer Kombination aus serverseitigen und lokalen Scripten. Je nachdem was erreicht werden soll, sind beide Varianten meistens alternativlos.
PHP einsetzen: Gar nicht so schwer - mit dem richtigen Grundlagen!
Nachdem wir nun geklärt haben, was PHP ist und wie es grundsätzlich funktioniert, kribbelt es Sie schon in den Fingern? Trauen Sie sich – erste Erfolge werden sich schon bald einstellen! Um den gesamten Umfang zu beherrschen, sind jedoch viel Geduld und Zeit gefragt.
PHP umfasst tausende Funktionen. Zudem sollten Sie sich unbedingt mit den Grundstrukturen moderner Programmiersprachen beschäftigen. Allgemeine Kenntnisse in den Bereichen prozedurale (Funktionen) und objektorientierte Programmierung (Objekte, Methoden) sind eine gute Voraussetzung. Wer bereits Vorkenntnisse in den Sprachen C oder Java mitbringt, dem wird PHP schnell vertraut erscheinen.
Häufige "PHP-Suchanfragen" bei Google: Das steckt dahinter
Kurz vorweg: Würden wir allein auf die wichtigsten PHP-Funktionen eingehen wollen, könnten wir hier ein ganzes Buch schreiben. Wir haben uns daher lieber einmal angesehen, nach welchen Methoden und Funktionalitäten im PHP-Kontext bei Google häufig gesucht wird. Die folgende Liste enthält diese Suchanfragen und wir erläutern, was die Intention der Suche sein könnte:
- php date format
Die “date” Funktion erwartet als ersten Parameter eine Zeichenkette, die für die gewünschte Formatierung des Rückgabewertes sorgt. In unserem Beispiel oben haben wir mit “d.m.Y” ein für uns gängiges Datumsformat wie 25.09.2022 bewirkt. Welche Möglichkeiten der Formatierungsstring bietet und wie man zum gewünschten Ergebnis kommt, ist für viele Entwickler interessant.
- php in_array
Mit der Funktion “in_array” wird geprüft, ob ein Wert Teil eines Arrays ist. Ein Array ist eine Variable, die nicht nur einen, sondern mehrere Werte beinhalten kann, die jeweils durch einen Index adressiert werden:
$zahlen = array(5, 8, 3, 9); echo $zahlen[2];
Gibt 3 aus. (Der erste Wert eines Arrays hat den Index 0)
- php array push
Mit der Funktion array_push fügt man einem Array einen oder mehrere Elemente am Ende hinzu.
- php include
Mit der “include”-Funktion lassen sich andere PHP-Dateien in einer PHP-Datei einbinden. Das ist sinnvoll, wenn man den Gesamtquellcode strukturieren oder Redundanzen vermeiden möchte.
- time() php
Die “time”-Funktion gibt den aktuellen “UNIX-Timestamp” zurück. Das ist die gesamte Anzahl an Sekunden, die seit dem 01.01.1970 um 00:00 Uhr vergangen sind. Es handelt sich hierbei um einen Standard in vielen Programmiersprachen. Um diesen Timestamp zu einem sinnvollen Ergebnis zu wandeln, gibt es entsprechende Funktionen wie etwa “time”.
- php replace
Zum Ersetzen von Teilzeichenketten bietet PHP mehrere Funktionen dieses Typs an. Besonders einfach und beliebt ist die Funktion “str_replace”. Diese Funktion erwartet drei Parameter:- die Zeichenkette, die ersetzt werden soll
- die Zeichenkette, die als Ersatz dient
- die Zeichenkette, in der gesucht wird.
Alternativ kann auch mit Hilfe so genannter “Regular Expressions” über die Funktion “preg_replace” ersetzt werden.
- php += string
Bei dieser Suchanfrage ist die Intention nicht ganz eindeutig. Der += Operator summiert eine Zahl zu einem Zahlenwert. Da hier jedoch nach “+= string” (string = Zeichenkette) gesucht wurde, wollte man wohl wissen, wie man einer Zeichenkette eine andere Zeichenkette anhängt.
Das funktioniert bei PHP wie folgt (und schreibt “Guten Abend” in den HTML-Code):
$text = ‘Guten’; $text .= ‘ Abend’; echo $text;
- php befehl weiterleitung
Möchte man per PHP eine Weiterleitung (301) bewirken, nutzt man dafür in der Regel die “header”-Funktion. Wichtig ist dabei, dass die Funktion aufgerufen wird, bevor es irgendwelche andere Ausgaben gegeben hat. Das sieht dann wie folgt aus:
header('Location: www.example.com/');
- php shell befehl ausführen
Um Befehle auf Systemebene auszuführen, gibt es unterschiedliche Möglichkeiten. So lassen sich zum Beispiel direkt Dateien im Dateisystem löschen. Oder Informationen zu Dateien abrufen, die dann via HTML ausgegeben werden können. Grundsätzlich empfiehlt sich jedoch, solche Funktionen nur dann zu nutzen, wenn es nicht anders geht. Für viele Zwecke gibt es nämlich auch equivalente PHP-Funktionen, mit denen sich das Ergebnis auch ohne Befehle auf Systemebene erzielen lässt.
Folgende Funktionen sind für Shell Befehle interessant: System, exec, passthru - php rand befehl
Mit der “rand”-Funktion wird eine Zufallszahl in einem vorgegebenen Wertebereich erzeugt.
- php drucken funktion
Eine Funktion, mit der man das Drucken einer HTML-Seite auslösen kann, gibt es leider nicht. Es ist aber ein gutes Beispiel für eine Funktionalität, die lokal im Webbrowser ausgelöst wird - und eben nicht serverseitig.
- php funktion beenden
Wer in PHP eine eigene Funktion schreibt, kann die Verarbeitung mit der “return”-Anweisung beenden. - php mysql befehle
PHP bietet eine MySQL-Extension. Diese umfasst alle wichtigen Funktionen wie die Konnektierung, Datenbank-Selektion, Queries und vieles mehr.
Hier geht es zu entsprechenden Beschreibungen: https://www.php.net/manual/de/book.mysqli.php
- php echo befehl
Mit dem “echo”-Befehl wird ein Variableninhalt im Quellcode ausgegeben.
- php mail funktion
Möchte man schnell und einfach eine E-Mail verschicken, kann man die “mail”-Funktion nutzen, die in der Regel mit dem sendmail-Kommando auf Systemebene verknüpft ist. Für einen sicheren Mailversand empfiehlt es sich jedoch, auf eine echte SMTP-Verbindung zu setzen. Die PHP-Library “PHPMailer” lässt sich nachträglich installieren und bietet eine umfangreich konfigurierbare Lösung: https://github.com/PHPMailer/PHPMailer
- php wait befehl
Wer nach einem “wait befehl” sucht, erwartet eine Funktion die eine weitere Verarbeitung des Scriptes um X Sekunden verzögert. In PHP bewirkt die Funktion “sleep” genau das. Eine erzwungene Verzögerung ist bei einem serverseitigen Script jedoch sehr ungewöhnlich. In der Regel sollte man sich fragen, ob man den gewünschten Effekt nicht durch ein lokales browserseitiges Script erzielen kann.
Quellen:
- https://kinsta.com/de/php-marktanteil/
- https://de.wikipedia.org/wiki/Hypertext
- https://de.wikipedia.org/wiki/PHP
Titelmotiv: Photo by Ben Griffiths on Unsplash