Im Dezember 2015 wurde die siebte Version der erfolgreichen Scriptsprache vorgestellt, aktuell ist PHP 7.3.1. PHP ist ein zentraler Bestandteil der typischen Lamp-Umgebung mit Linux, Apache, My SQL und PHP. Im Zusammenspiel mit dem Apache-Server und der My-SQL-Datenbank kann sie ihre Stärken ausspielen. Bei PHP wird der Programmcode immer auf dem Server verarbeitet und nur die Ergebnisse an den Client übertragen. PHP7 wurde in dieser Richtung weiter optimiert und hat im Vergleich zum Vorgänger PHP5 eine um bis zu 30 Prozent schnellere Ausführungszeit.
Anders als bei HTML, CSS und Javascript benötigen Sie für die Ausführung von PHP einen Webserver mit PHP-Unterstützung. Am häufigsten kommt an dieser Stelle der Apache-Webserver zum Einsatz. Der lässt sich auch im heimischen Netz auf einem Linux-Rechner installieren. Näheres dazu erfahren Sie unter anderem im Artikel „HTML-Crashkurs“ , der sich generell als Ergänzung zu diesem Beitrag anbietet. Wir gehen hier aber davon aus, dass Sie Ihre Homepage durch PHP dynamischer und attraktiver machen wollen. Auf der Homepage können Sie eine vollwertige PHP-Unterstützung mit den aktuellsten Bibliotheken voraussetzen.
1. Formularabfragen und Auswertungen mit PHP
Die folgenden Beispiele zeigen häufige und typische Aufgaben, die PHP erledigen kann. Insofern handelt es sich bei diesem Artikel um einen „Workshop“ im Wortsinn: Erst das aktive Experimentieren mit diesen PHP-Dateien verschafft den wesentlichen Erkenntnisgewinn, die Erläuterungen können dies nur kommentierend begleiten.

Das Beispiel zeigt, wie Sie mit PHP ein Formular darstellen, die Eingaben abfragen und dann weiterverarbeiten. Die Aufgaben werden dabei auf zwei Dateien aufgeteilt: Die Darstellung des Formulars findet innerhalb einer HTML-Seite statt, die Ausgabe in einer PHP-Datei. Die passenden Scripts finden Sie in den Dateien „bsp1.html“ und „bsp1.php“. Der wesentliche Codeblock in der HTML-Datei lautet so:
Name: E-mail:
Für die Abfrage der Formulardaten nutzen wir ein „form“-Element. Die Verknüpfung mit der PHP-Webseite findet über das Attribut „action“ statt. Weisen Sie den einzelnen „input“-Feldern über das Attribut „name“ immer einen eindeutigen Bezeichner zu. Diesen nutzen Sie anschließend im PHP-Script für die Ausgabe der Ergebnisse. Innerhalb des Beispielformulars gibt es die beiden Felder „name“ und „mail“. Dabei handelt es sich um Textfelder. Die Übertragung der Felder an das PHP-Script geschieht mit dem Drücken des „Senden“-Schaltknopfs. Damit stehen die Werte aus den beiden Textfeldern für die Weiterverarbeitung im PHP-Script zur Verfügung. Der Zugriff funktioniert über die zuvor definierten Variablen „dein_name“ und „mail“.
Werte über ein PHP-Script ausgeben: Am Beispiel der Datei „bsp1.php“ sehen Sie, dass eine PHP-Datei wie eine HTML-Datei aussehen kann. Der PHP-Teil ist in den „body“-Bereich der HTML-Seite integriert. Das Signal für den PHP-Interpreter ist immer dies:
Ab diesem Punkt beginnt der PHP-Code, beendet wird er mit „?>“. Danach kann es mit HTML-Tags weitergehen. Für die Ausgabe wird der Befehl „echo“ verwendet, der die Variable „dein_name“ und „mail“ ausgibt. Den Inhalt der Variablen ermittelt PHP mit dem Befehl „$_GET[“Variable”]“. Konkret sieht das dann so aus:
Willkommen Deine E-Mail Adresse lautet:
Zusätzlich wird noch eine zweite Zeile ausgegeben, in welcher die zuvor eingegebene E-Mail-Adresse (Variable „mail“) gespeichert ist.

Damit haben Sie Ihr erstes Programm erfolgreich geschrieben, können es auf Ihren Webserver kopieren und testen. Wenn sich der Webserver auf dem gleichen Computer befindet wie der Browser, mit dem Sie darauf zugreifen, lautet die URL „http://localhost/[Pfad]/bsp1.html“. Ansonsten verwenden Sie die den DNS-Namen des Webservers.
Lese-Tipp: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet
2. Vollständigkeit der Eingaben prüfen
Das nächste Beispiel baut das sehr einfache Grundgerüst aus Punkt 1 aus und überprüft die korrekte Eingabe in das Textfeld. Hier soll kontrolliert werden, ob in den beiden Feldern ein Wert ankommt. Damit Fehler gut sichtbar werden, definieren Sie am besten ein Stylesheet, mit dem Sie fehlende Angaben optisch hervorheben können. Dies geschieht im Beispiel über das kleine Stylesheet „fehler“, welches die angezeigte Schrift in roter Farbe formatiert.
.fehler {color: #FF0000;}

Im HTML-Teil wird das Formular mit den zwei Eingabefeldern aufgebaut inklusive den Funktionen, die eine Fehlermeldung ausgeben werden. Das Stylesheet „fehler“ kommt bei der Ausgabe zum Einsatz:
Überprüfe Deine Eingabe
* Pflichtfeld
Name: * E-mail: [analog…]Nachdem Sie das Formular definiert haben, können Sie sich dem eigentlichen PHP-Programmcode zuwenden. Innerhalb des Formulars gibt es wieder zwei Felder für die Eingabe des Namens und der E-Mail-Adresse. Wenn eines oder beide Felder leer sind, dann soll eine Fehlermeldung angezeigt werden. Für die Verarbeitung der Werte benötigen Sie jeweils zwei Variablen: eine für die Speicherung des Werts und eine zweite für die Hinterlegung des Fehlerzustands:
//Initialisierung der Variablen $fehler_Name = $fehler_Mail = “; $name = $mail = “”;
Als Nächstes überprüfen wir mit einer If-Bedingung, ob die Felder „name“ und „mail“ ausgefüllt sind:
if ($_SERVER[“REQUEST_METHOD”] == “POST”) { if (empty($_POST[“name”])) { $fehler_Name = “Bitte geben Sie Ihren Namen ein”; } else { $name = dateneingabe_testen($_POST[“name”]); }
Wenn die Variable „name“ leer ist (Funktion „empty“), tritt die erste Aktion in Kraft und der Fehlervariablen wird ein Text zugewiesen. Falls das Feld einen Wert enthält, dann wird der Variablen „name“ die Eingabe des Benutzers zugewiesen und die Funktion „dateneingabe_testen“ kommt zum Einsatz:
function dateneingabe_testen($daten_eingabe) { $daten_eingabe = trim($daten_eingabe); $daten_eingabe = stripslashes($daten_eingabe); $daten_eingabe = htmlspecialchars($daten_eingabe); return $daten_eingabe; } ?>
Es empfiehlt sich immer wie angegeben, die vom Anwender eingegebenen Zeichenketten zu „reinigen“: Hier entfernt die Funktion „trim()“ links und rechts Leerzeichen, „stripslashes()“ entfernt eventuelle Backslashes aus der Zeichenkette und „htmlspecialchars()“ wandelt vordefinierte Zeichen in die entsprechenden HTML-Zeichen um. Am Ende wird die geputzte Zeichenkette mit „return“ wieder an die Hauptroutine zurückgegeben.
Für das Feld „mail“ unseres Beispiels erfolgt die analoge Prüfung.

Ergebnis ausgeben: Falls die Felder ausgefüllt wurden, wird am Ende das Ergebnis ausgegeben. An dieser Stelle kommt wieder ein „If“ zum Einsatz:
if ( $name “” and $mail “” ) {
echo “Dies war Ihre Eingabe:
“;
echo $name;
echo ”
“;
echo $mail;
echo ”
“;
}
?>
3. PHP im Umgang mit der Zeit
PHP hat verschiedene Standardfunktionen im Repertoire, um Datums- und Zeitangaben zu interpretieren. Das folgende Beispiel „bsp3.php“ zeigt, wie Sie diese für Berechnungen nutzen. Im folgenden Programmcode wird als Ausgangstermin einer Terminreihe der kommende Samstag angenommen. Die Funktion „strtotime()“ wandelt den Wochentag in ein Datum um. Endtermin soll der Samstag in drei Wochen sein, der ebenfalls mit „strtotime()“ ermittelt wird:
$startdatum=strtotime(“Saturday”); $endedatum=strtotime(“+3 weeks”,$startdatum);
„Saturday“ entspricht dem nächsten Samstag, „+3 weeks“ ist das Datum von heute ab in drei Wochen. Als zweiten Parameter können Sie noch einen alternativen Bezugspunkt angeben, falls Sie die Berechnung nicht vom heutigen Tag an beginnen möchten.

In einer „While“-Schleife werden anschließend, startend mit dem ermittelten Samstag, alle Termine der Reihe nach ausgegeben. In diesem Beispiel soll ab diesem Zeitpunkt alle drei Tage ein Meeting stattfinden, was der Parameter „+3 days“ erledigt:
while ($startdatum { echo date(“d M”, $startdatum),” “; $startdatum = strtotime(“+3 days”, $startdatum); } ?>
While zählt die einzelnen Termine solange auf, bis das Enddatum erreicht ist.
Lese-Tipp: Die richtige Linux-Distribution für Einsteiger
4. Den Inhalt einer Datei auslesen
Um den Inhalt einer Datei auszulesen, auszuwerten oder dem Webbenutzer anzuzeigen, sind folgende PHP-Funktionen unerlässlich: „fopen()“ öffnet eine Datei, „fread()“ schreibt den Inhalt in eine Variable, „fclose()“ schließt die Datei wieder:
$meinedatei = fopen(“fussball.txt”, “r”) or die(“Datei kann nicht geöffnet werden!”); echo fread($meinedatei,filesize(“fussball.txt”)); fclose($meinedatei); ?>
Danach kann der Inhalt über die Variable („$meinedatei“) einfach ausgegeben oder weiterverarbeitet werden.



Die Scriptbeispiele „bsp4.php“ und „bsp4a.php“ zeigen zwei einfache Varianten mit „echo“. Dabei löst die zweite Variante ein typisches Problem, das die „bsp4.php“ exemplarisch demonstriert. Hier sind die Zeilen der Ausgangsdatei nämlich ohne Zeilenumbruch wiedergegeben. Das zweite Script macht es besser, indem es nach jeder Zeile einen Umbruch mittels HTML-Tag einfügt. Dazu ist jedoch ein anderer Weg des Zugriffs notwendig: Wenn Sie Datei zeilenweise einlesen, müssen Sie das Ende der Datei ermitteln. Solange dies nicht erreicht ist, geht es weiter zur nächsten Zeile:
Die Funktion „feof()“ ermittelt das Dateiende und gibt „false“ zurück, solange es nicht erreicht ist. Dann holt sich die Funktion „fgets()“ die nächste Zeile der Datei. Der Ablauf wird über eine „While“-Schleife abgebildet. Am Ende angekommen, wird die Datei geschlossen.
5. Neue Dateien per PHP schreiben
Natürlich kann PHP nicht nur Daten aus einer Datei lesen, sondern auch Dateien anlegen und mit Inhalt füllen. Dafür steht der Befehl „fwrite()“ zur Verfügung. Außerdem muss die Datei mit „fopen()“ in einem anderen Modus geöffnet werden. Neben dem in den vorangehenden Beispielen genutzten „r“ für Nur-Lesen („read“) gibt es weitere Modi – die wichtigsten sind „w“ für Schreiben („write“) und „a“ für das Erweitern bestehender Dateien („append“). Im folgenden Beispiel („bsp4b.php“) wird die Datei mit dem Parameter „w“ geöffnet. Diese löscht eine gegebenenfalls bestehende Datei und startet in der ersten Zeile mit dem Schreiben.
$meinedatei = fopen(“testdatei.txt”, “w”) or die(“Fehler: Datei konnte nicht erzeugt werden!”); $txt = “Dies ist die erste Zeilern”; fwrite($meinedatei, $txt); $txt = “Dies ist die zweite Zeilern”; fwrite($meinedatei, $txt); fclose($meinedatei); ?>
Damit jede Zeile auch innerhalb der Datei eine neue Zeile erhält, geben Sie jeweils die Parameter „rn“ mit. Dies sorgt für ein Return und eine neue Zeile.
6. Inhalt eines Verzeichnisses auslesen mit PHP
Das letzte Demoscript „bsp4c.php“ liest das Verzeichnis aus, in dem sich die aufgerufene PHP-Datei befindet, und zeigt alle Dateien als Link. Das ist nicht ganz trivial, denn Sie benötigen ein Array, das die Dateien unabhängig von der Anzahl dynamisch aufnimmt. Anschließend öffnet „opendir()“ das Verzeichnis, dessen Inhalt Sie lesen möchten. Die einzelnen Dateien werden dann mit „readdir()“ ermittelt und nacheinander in das Array geschrieben:
$dateien = array(); $verzeichnis = opendir(‘.’); while($f = readdir($verzeichnis)){ if($f==”bsp4c.php”) {} else $dateien[] = $f; clearstatcache(); } closedir($verzeichnis); sort($dateien); for($zaehler = 0; $zaehler count($dateien); $zaehler++){ echo ‚‘.$dateien[$zaehler].’ ‘; }
Die Dateinamen werden mit „sort“ aufsteigend sortiert und schließlich mit einer „for“-Schleife und dem Echo-Befehl als klickbare HTML-Links angezeigt.
Webentwicklung jetzt mit dem Videokurs von Udemy lernen
Empfehlenswerte PHP-Hilfen
PHP einfach: www.php-einfach.de PHP5-Tutorial (englisch): www.w3schools.com PHP-Kurs: www.php-kurs.com Offizielles Tutorial: https://php.net/manual/de/tutorial.php PHP-Tutorial: https://de.html.net/tutorials/php/