PHP Basics

PHP (rekursives Akronym für PHP: Hypertext Preprocessor) ist eine weit verbreitete und für den allgemeinen Gebrauch bestimmte Open Source-Skriptsprache, welche speziell für die Webprogrammierung geeignet ist und in HTML eingebettet werden kann. Der PHP-Code steht zwischen speziellen Anfangs- und Abschluss-Verarbeitungsinstruktionen <?php und ?>, mit denen man in den "PHP-Modus" und zurück wechseln kann.

PHP unterscheidet sich von clientseitigen Sprachen wie Javascript dadurch, dass der Code auf dem Server ausgeführt wird und dort HTML-Ausgaben generiert, die an den Client gesendet werden. Der Client erhält also nur das Ergebnis der Skriptausführung, ohne dass es möglich ist herauszufinden, wie der eigentliche Code aussieht.

Was kann PHP?

Alles. PHP ist hauptsächlich auf serverseitige Skripte fokussiert, weshalb Sie alles tun können, was auch ein anderes CGI-Programm kann, wie z.B. Formulardaten sammeln, dynamische Inhalte für Webseiten generieren oder Cookies senden und empfangen. Aber PHP kann noch viel mehr. Es gibt drei Hauptgebiete, in denen PHP-Skripte genutzt werden:

  • Serverseitige Programmierung. Dies ist das traditionelle und auch Hauptfeld von PHP. Sie benötigen drei Dinge, um damit arbeiten zu können: Den PHP-Parser (CGI oder Server-Modul), einen Webserver und einen Webbrowser. Sie müssen einen Webserver laufen lassen, der mit einer PHP-Installation verbunden ist. Sie können auf die Ausgabe Ihres PHP-Programms mittels eines Webbrowsers zugreifen, der die Seite mithilfe des Servers darstellt. Dieses gesamte Szenario können Sie auf Ihrem heimischen Rechner laufen lassen, wenn Sie erst einmal mit PHP-Programmierung experimentieren wollen.
  • Kommandozeilenprogrammierung. Es ist auch möglich PHP-Skripte schreiben, die ohne einen Server oder Browser arbeiten können. Diese Art der Programmierung wird hier nicht behandelt.
  • Schreiben von Desktop-Applikationen. Diese Art der Programmierung wird hier nicht behandelt.

In diesem Script beschäftigen wir uns ausschließlich mit serverseitiger Programmierung!

Was brauche ich?

Sie brauchen drei Dinge: PHP selbst, einen Webserver und einen Webbrowser. Sie haben wahrscheinlich bereits einen Webbrowser und, abhängig von Ihrem Betriebssystem, möglicherweise ebenso bereits einen Webserver (z.B. Apache). Sie können ebenfalls Webspace bei einem Unternehmen mieten. Auf diese Weise müssen Sie selbst nichts einrichten und müssen nur PHP-Skripte schreiben, diese auf den gemieteten Server hochladen und die Ergebnisse im Browser betrachten.

Apache HTTP Server ist der meistverbreitete Web-Server im Internet; die Software ist Open-Source und somit komplett kostenlos.

Das Programm ist modular aufgebaut, was eine sehr spezielle Konfiguration des Servers erlaubt. Auch die häufig auf dem Apache HTTP Server angewendeten Skript-Sprachen PHP und Perl müssen erst per Modul eingebaut oder über eine CGI-Schnittstelle integriert werden.

Mit dem "Apache HTTP Server" richten Sie Ihren privaten Web-Server völlig kostenlos ein. Mit XAMPP können Sie jedoch mit einem Mausklick einen voll konfigurierten PHP-Server installieren.

Viele Web-Anwendungen und Computer-Programme greifen heutzutage auf die Dienste einer Datenbank zurück, um Daten zu speichern und zu verwalten. MySQL ist ein kostenloses SQL-Datenbank-System auf Open-Source-Basis, das vor allem in Verbindung mit PHP auf einem Apache HTTP Server eingesetzt wird.

Ein Datenbank-System erlaubt die Erstellung mehrerer Datenbanken, in den wiederum eine Vielzahl von Tabellen zur Speicherung von Daten generiert werden können.

Fazit

Sie brauchen drei Downloads für die Installationen:

  • Apache Web-Server
  • PHP
  • MySQL-Datenbank

oder

  • Ein fertiges Paket das alle Programme beinhaltet z.B. XAMPP

Was muss ich wissen?

Sie sollten gute HTML-Kenntnisse haben, bevor sie sich mit PHP beschäftigen. Ein guter Umgang mit einem Datenbankprogramm (z.B. MSAccess) ist sicher kein Nachteil!

PHP in HTML

PHP kann überall in und außerhalb von HTML vorkommen. Mit <?php beginnt PHP und mit ?> endet PHP. PHP kann natürlich auch in externen Scripts geschrieben werden.

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

Befehle werden in PHP generell mit einem Semikolon abgeschlossen, lediglich wenn der Befehl allein zwischen <?php und ?> steht, ist dies optional. Sie können auch HTML-Tag's mit Attribute und Attribut-Werte in PHP schreiben wie folgendes Beispiel zeigt:

//Hier beginnt HTML
<body>
<p>Das ist HTML</p>
<?php
echo "<p>Das ist PHP</p>";
?>
<p>Das ist wieder HTML</p>
</body>

Einbindung externer Skripts

PHP bietet mehrere Befehle an, um externe Scripts einzubinden:

  • include
  • require
  • include_once
  • require_once

Include

<?php
include("connection.inc.php");
?>

Der Befehl include("Dateipfad/Dateiname"); fügt an dieser Stelle den Inhalt der Datei 'connection.incphp' ein. Dadurch ist es möglich, Quellcode, der in mehreren Dateien benötigt wird, zentral zu halten, sodass Änderungen einfacher durchzuführen sind.

Require

<?php
require("connection.inc.php");
?>

Ganz analog zu include() funktioniert require(). Es wird aber von PHP etwas anders behandelt. Ein wesentlicher Unterschied zu include() stellt die Reaktion auf nicht vorhandene Dateien dar. Während include() lediglich ein "Warning" ausgibt und das PHP-Skript anschließend weiter ausgeführt wird, wird bei require() das laufende PHP-Skript mit einem "Fatal error:" abgebrochen.

include_once, require_once

<?php
include_once("connection.inc.php");
// oder 
require_once("connection.inc.php");
?>

Neben den Funktionen include() und require() gibt es auch noch die Funktionen include_once() und require_once(). Der Name zeigt schon, wo der Unterschied liegt: Bei den *_once()-Funktionen wird die Datei nur einmal eingefügt, unabhängig davon, wie häufig man versucht sie einzufügen.

Der Sinn ist einfach: Bei umfangreichen Webseiten gibt es häufig eine Datei, die die zentralen Funktionen enthält. Da diese in den Webseiten benötigt werden, fügt man sie immer am Anfang ein. Soweit kein Problem. Sobald aber mehrere zentrale Funktionsdateien existieren, die sich auch untereinander benötigen, wird es schwierig, weil jede nur einmal eingefügt werden darf, um z. B. Probleme mit Wiederholungen bei der Definition von Funktionen und Wertzuweisungen von Variablen zu vermeiden.

Tipps im Umgang mit externen Dateien

Normalerweise können Benutzer den Inhalt der Skripts nicht sehen. Jede Datei mit der Endung .php wird vom Webserver an den PHP-Interpreter weitergeleitet und von diesem verarbeitet. Es ist natürlich ohne Weiteres möglich, jede andere Endung anzugeben. Oft werden Dateien, die mit include() eingeschlossen werden sollen, mit .inc bezeichnet. Auch diese Endung wird nicht verarbeitet. Das ist für den Ablauf des Skripts egal – die Verarbeitung erfolgt im Rahmen des "umgebenden" Skripts und damit unter dessen Regie.

Was jedoch nicht egal sein dürfte, ist das damit aufkommende Sicherheitsproblem. Sollte ein Benutzer den Pfad zu den Include-Dateien herausbekommen, kann er deren Namen in der Adresszeile des Browsers direkt eingeben. Der Webserver wird die Endung nicht kennen und dem Browser die Datei direkt zusenden. Dieser erkennt ein einfaches Textdokument und stellt es dar. Da in Include-Dateien auch Kennwörter für Datenbanken stehen können, wäre dies äußerst problematisch.

Dieses Problem kann man jedoch recht schnell beseitigen. Benennen Sie sämtliche Include-Dateien in .inc.php um. So haben Sie eine eindeutige Kennzeichnung und erzwingen im Notfall das Parsen des Codes durch den PHP-Interpreter. Das mag zwar zu einer Fehlermeldung führen, sollte diese Datei einzeln aufgerufen werden, an den Inhalt gelangt der Benutzer dennoch nicht.

PHP-Ausgabe in HTML

Wenn HTML eine Ausgabe aus PHP wiedergeben soll, stehen u.A. die Befehle echo und print zur Verfügung. Im Endeffekt leisten beide dasselbe: Sie geben Text aus. echo ist ein internes Sprachkonstrukt, wohingegen print ein Ausdruck (Expression) ist. So wie in ziemlich allen Programmiersprachen muss Text in Anführungszeichen gesetzt werden. Dieses Vorgehen wird Quoten oder Quoting genannt, wobei enfache oder doppelte Anführungszeichen erlaubt sind (Double- oder Single-quoted strings).

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

Kommentare in PHP

Kommentare im PHP-Code werden nicht mit übertragen. Der Interpreter ignoriert diese Zeilen und entfernt sie vor der Übertragung. PHP unterstützt Kommentare sowohl nach Art von C/C++ als auch nach Art Java/JavaScript. Dabei ist zwischen einzeiligen und mehrzeiligen Kommentaren zu unterscheiden.

<?php
// Einzeiliger Kommentar

/* Mehrzeiliger
Kommentar */
?>