Kapitel 6 - If Bedingungen & Vergleiche
Kaum ein PHP Script kommt ohne eine if-Bedinung aus. Eine if-Bedinung stellt wie der Name schon verdeutlicht eine Bedingung, die entweder erfüllt wird oder auch nicht. Wird sie erfüllt, so wird eine Aktion ausgeführt. Wird die Bedingung nicht erfüllt kann auch eine Aktion definiert sein, welche dann ausgeführt wird. Die beiden "Befehle" - "If" - zu Deutsch "wenn" und "else" - zu Deutsch "sonst" sind die perfekte Kombination, um Bedingungen und Aktionen zu definieren. Der einfache Syntax einer if-Bedingung sieht so aus:
Beispiel Nummer 6.1:
<?
if(Bedingung)
{
//mache dies
}
else
{
//mache das
}
?>
Erklärung: Hier ist natürlich eine Erklärung dringend von nöten. Also Stück für Stück:
if(Bedingung) - Hier wird mit dem Schlagwort if eine Bedingung gestellt. Wenn diese Bedinung zutrifft (TRUE) werden die Aktionen ausgeführt, die sich zwischen den beiden "geschweiften Klammern" befinden welche direkt an die Bedingung anknüpfen.
Trifft die Bedingung nicht zu, wird das ausgeführt, was zwischen den geschweiften Klammern nach else steht.
An dieser Stelle ein kleiner Tipp: Wenn dir dies zu Beginn noch zu kompliziert ist, so übersetzte deinen PHP Code einfach ins Deutsche.
Nun geht es weiter mit Vergleichen. Später werden diese Vergleichsmethoden im Zusammenspiel mit if-Bedingungen kombiniert.
In PHP gibt es eine Menge an sogenannten Vergleichsoperatoren. Dies sind Operatoren, welche zwischen Ausdrücken Vergleiche und/oder Beziehungen herstellen. Hier eine kleine Auflistung von Vergleichsoperatoren:
Operator: == Überprüft auf Gleichheit
Operator: === Überprüft auf Identität
Operator: != Überprüft auf Ungleichheit
Operator: > Größer als
Operator: < Kleiner als
Operator: >= Größer oder gleich
Operator: <= Kleiner als oder gleich
Mit diesen paar Operatoren kann man sehr viel realisieren. Hier ein kleines Beispiel:
Beispiel Nummer 6.2:
<?
$a = ("5");
$b = ("10");
if($a == $b)
{
echo("$a ist ist gleich $b");
}
else
{
echo("$a ist ungleich $b");
}
?>
Erklärung: Hier werden zunächst zwei Variablen ($a und $b) Werte zugewiesen.
if($a == $b) - In dieser Zeile werden die beiden zuvor definierten Variablen mittels des Vergleichsoperators "==" auf ihre Gleichheit hin überprüft. Also im Klartext: Wenn der Wert der Variable $a (5) genau mit dem der Variable $b (10) übereinstimmt, dann wird das ausgeführt, was zwischen den geschweiften Klammern steht, welche direkt auf das Schlagwort if folgen.
{
echo("$a ist ist gleich $b");
}
Wie du erkennen kannst ist die if-Bedingung nicht erfüllt worden, da 5 nicht gleich 10 ist. Also geht es weiter zum Schlagwort "else". Wenn also die Bedingung nicht zutrifft (was der Fall ist) soll der PHP Interpreter einfach das ausführen was das Wort else definiert.
else
{
echo("$a ist ungleich $b");
}
Es wird also auf dem Bildschirm folgender Text erscheinen:
5 ist ungleich 10
Die anderen Vergleichsoperatoren verfahren genau nach dem selben Prinzip - einfach mal rumprobieren. Aber hier zur Verdeutlichung noch ein etwas anspruchsvolleres Beispiel:
Beispiel Nummer 6.3:
<?
$a = 5;
$b = 10;
$c = 15;
if($a || $b != $c)
{
echo("$a oder $b sind ungleich $c");
}
else
{
echo("$a oder $b sind gleich $c");
}
?>
Erklärung: Das einzig interresante hier ist die if-Bedingung.
if($a || $b != $c) - hier wird überprüft ob $a oder $b ungleich $c sind. Dementsprechend wie die Bedinung ausfällt werden zur Überprüfung Texte ausgegeben.
Das war auch schon so ziehmlich alles was es zu if, else und zu den verschiedenen Vergleichsoperatoren zu sagen gibt.
Kapitel 7 - include() & require
In diesem Kapitel werden die zwei grundlegende PHP Funktionen vorgestellt. Es handelt sich um die Funktionen include und require. Insbesondere include beötigt man fast in jedem Script. Von der Grundfunktion sind die beiden Funktionen gleich, denn beide binden sie in ein bestehendes Dokument ein anderes ein. Nur im Zeitpunkt der Ausführung unterscheiden sich diese beiden Funktionen grundlegend. Dazu später mehr. Nun ein Beispiel zur verdeutlichung:
Beispiel Nummer 7.1:
Datei "index.php":
<html>
<head>
<title>
<? include("include.php"); ?>
</title>
</head>
<body>
</body>
</html>
Datei "include.php":
#### Dies soll ein Titel sein #####
Erklärung: In der Datei index.php ist ein HTML Grundgerüst zu sehen. Zwischen dem <title> Tag wird der Titel einer Seite definiert. In diesem Beispiel steht zwischen diesen beiden Tags PHP Code.
<? include("include.php"); ?> - Es wird mittels des oben schon erwähntem include Befehl die Seite include.php eingebunden. In dieser Datei steht nur Text (#### Dies soll ein Titel sein #####). Da diese Datei genau zwischen die <title> Tags eingebunden wird sieht die index.php Datei wenn man sie sich vorstellt so aus:
Beispiel Nummer 7.2:
<html>
<head>
<title>
#### Dies soll ein Titel sein #####
</title>
</head>
<body>
</body>
</html>
Hinweise: Wenn du nun auf jeder Seite die du erstellst zwischen die <title> Tags den include Befehl schreibst, so wird der Titel immer dem Inhalt entsprechen, welcher in der Datei include.php steht. Änderst du dann den Inhalt der Datei include.php so wird sich auch der Titel auf jeder Seite automatisch ändern. In der Datei, welche mittels include in eine Seite eingebunden wird kann PHP sowie auch HTML Code stehen. So kannst du zum Beispiel eine Navigation deiner Homepage in einer externen Datei speichern und diese dann immer am entsprechenden Platz in deine Homepage einbinden. Ändert sich in der Navigation etwas, so kannst du einfach die Datei entsprechend abändern, in der sich die Navigation befindet und auf allen Seiten in der die Navigation eingebunden wurde wird sich diese auch ändern.
Aber wo liegt nun der Unterschied zwischen den Funktionen include und require? Ganz einfach. Dieser liegt im Zeitpunkt der Ausführung der eingebundenen Dateien.
include: Bei include interpretiert der Interpreter die Seite ganz normal bis er auf den include Befehl stößt. Dann interpretiert er den Code, welcher sich in der includierten Datei befindet.
require: Ist ein require Befehl in einer Seite enthalten wird zuerst der Inhalt der mittels require eingebundenen Datei ausgeführt - also vor dem ausführen des eigentliches Scriptes.
Kapitel 9 - Parameterübergabe
Hört sich schrecklich an dieses Wort - "Parameterübergabe". Darunter kann man sich im ersten moment als PHP Anfänger sicher sehr wenig vorstellen. Durch Parameterübergabe ist es möglich Variablen und deren Inhalte übere mehrere Seiten hinweg weiter zu geben. Wie du ja weißt sind Variablen nur auf der Seite gültig/vorhanden, auf der sie definiert werden. Was ist aber wenn sich ein Besucher zum Beispiel in ein Community System einloggt? Er muss ja irgendwie identifiziert werden. Dies lernst du unter anderem in diesem Kapitel. Los gehts!
Fangen wir mit einem ganz einfachen Beispiel an.
Beispiel Nummer 9.1:
<a href="index.php?name=Kohl">Hier klicken</a>
Erklärung: Zunächst wird mittels des HTML Tags "<a href>" ein Link definiert. Bedeutend interresanter ist aber die Pfadangabe zur Folgeseite.
index.php?name=Kohl - Du siehst hier, dass der Link auf die Seite index.php verweist. Hinter dem Pfad zur Folgeseite steht ein Fragezeichen (?). Dies dient als Trennzeichen. Alles was rechts des Fragezeichens steht beeinflusst den Pfad nicht. Hinter dem Fragezeichen steht das Wort "name". Das Wort was hinter dem Fragezeichen steht ist der Variablen Name, welcher übergeben werden soll. In Unserem Falle wird die Variable name übergeben, welche den Inhalt "Kohl" hat.
Auf der Folgeseite (index.php) kann man mit der Variable name (-> $name) ganz normal weiterarbeiten.
Diese Art der Parameterübergabe nennt man "Parameterübergabe mittels der URL", weil in der URL die Variablen temporär gespeichert werden.
Wenn du nun zwei oder mehrere Variablen in einer URL übergeben möchtest musst du nach folgendem Beispiel verfahren:
Beispiel Nummer 9.1:
<a href="index.php?name=Kohl&variablenname=variablenw ert&u.s.w=u.s.f">Hier klicken</a>
In diesem Beispiel wird durch das "und-Symbol" (&) eine neue Variable eingeleitet.
Die zweite Möglichkeit ist die Parameterübergabe durch Textfelder, Selectfelder, RadioButtons, Memofelder und CheckBoxen. Jedes dieser Elemente hat einen Namen, den du selbst mit dem name-Tag definieren kannst. Der Name des Elementes enspricht gleichzeitig dem Variablen Name. Benennst du beispielsweise ein Textfeld "name" so heißt die Variable $name. Hier zur Verdeutlichung ein Beispiel:
Beispiel Nummer 9.2:
<form action="send.php" method="" target="">
<input type="Text" name="name"><br>
@),t;input type="Submit">
</form>
Dieses Beispiel stellt ein ganz normales Formular dar, welches ein Textfeld und einen Submit Button enthält. Sobald der Benutzer auf den Submit Button klickt wird die Seite send.php zur weiteren Verarbeitung aufgerufen. Das Textfeld mit dem Namen "name" wird dann an die Datei send.php die Variable $name übergeben. Der Inhalt der Variable ist abhängig von der Eingabe, welche der Benutzer in das Textfeld eingibt.
Zur Verdeutlichung wird im nächsten Beispiel die Variable $name im Zusammenhang mit einem echo Befehl weiterverarbeitet.
Beispiel Nummer 9.3:
<?
echo("Du hast folgenden Wert in das Textfeld eingegeben: $name");
?>
Erklärung: Mittels des echo Befehles wird zur Kontrolle die Variable $name ausgegeben, ohne dass sie direkt auf der Seite definiert wurde.
Tipp: Seit der Version 4 von PHP ist es jedem PHP Entwickler ans Herz gelegt worden seine Variablen folgendermasen weiter zu verarbeiten:
$_POST[name_des_textfeldes]. Dies Dient zur Übersicht und zwingt zum sauberen Programmieren.
Kapitel 10 - While & for-Schleifen
While Schleifen werden vorallem dann benötigt, wenn ein Script mehrfach aufgerufen und durchlaufen werden muss. Es wird wie bei if-Abfragen eine Bedinung gestellt. Hier der Syntax von While Schleifen: Beispiel Nummer 10.1:
<?
while(Bediungung)
{
//Script
}
?>
Erklärung: While - zu Deutsch "solange" überprüft in jedem Durchlauf der Schleife ob die Bedingung erfüllt ist, welche direkt auf das Schlagwort while folgt. Das eigentliche Script - also der Code, welcher immer bei jedem Durchlauf ausgeführt wird steht zwischen "geschweiften Klammern", welche als Begrenzung für den dazwischen stehendem Code gelten.
Zur Verdeutlichung des Sachverhaltes hier ein weiteres funktionsfähiges Beispiel:
Beispiel Nummer 10.2:
<?
$a = 5;
$b = 10;
while($a != $b)
{
echo("Ich werde noch durchlaufen!<br>");
$a++;
}
?>
Erklärung: Zu Beginn des kleinen Beispiel Scriptes werden zwei Variablen definiert. Dann stellt die While Schleife eine Bedingung.
while($a != $b) - Übersetzt man diesen Ausdruck "ins Deutsche", so würde das im übertragenem Sinne in etwa so aussehen: "Solange (while) der Wert der Variable $a (5) nicht dem Wert von $b (10) entspricht soll die Schleife durchlaufen werden".
Nun haben wir aber ein Problem. $a und $b haben ja "feste" Werte erhalten. Wie erreicht man nun, dass sich diese Werte ändern und die Bedinung irgendwann erfüllt wird? Ganz einfach:
$a++ - Am Ende der While Schleife wird die Variable $a++ aufgerufen. Diese Variable erhöht bei jedem Durchlauf der Schleife den Wert der Variable $a um den Wert eins (1). Es sind also bei jedem Durchlauf neue Vorraussetzungen geschaffen, die überprüft werden müssen. Wäre diese Variable $a++ am Ende des Scriptes nicht aufgerufen worden, so hätten wir eine sogenannte Endlos Schleife erzeugt, die nie ein Ende gefunden hätte.
Es gibt neben der While Schleife auch noch eine sogenannte "for" Schleife. Die Funktion diese beiden Schleifenarten ist fast gleich - der Syntax unterscheidet sich jedoch in einigen Punken. Zum Vergleich des Syntaxes wird im folgendem Beispiel versucht das selbe Ergebnis wie in Beispiel Nummer 20 zu erreichen diesmal allerdings mit einer einfachen for Schleife.
Beispiel Nummer 10.3:
<?
for($a = 5; $ @), "10"; $a++)
{
echo("Ich werde noch durchlaufen!<br>");
}
?>
Erklärung: Das Schlafwort "for" leitet in diesem Falle wie bei While Schleifen eine Bedingung ein, welche zwischen zwei Klammern steht ein. Bei for Schleifen jedoch können die Variablen in der Bedingung definiert werden. Die Variable, welche für die Erhöhung der Variable $a zuständig ist steht hinter der Bedingung ($a++)!
Hinweise: $a++ erhöht eine Variable um den Wert eins (1). $a-- würde die Variable immer um den Wert eins (1) veringern.
Kapitel 11 - Datumsfunktionen
Es gibt in PHP viele Funktionen, welche mit dem Datum und der Uhrzeit zu tun haben. Hier einige Beispiele:
Beispiel Nummer: 11.1
<?
$time = time();
echo("$time");
?>
Erklärung: Die Funktion gibt den sogenannten Timestamp zurück. In unserem Falle erschien auf dem Bildschirm folgende Ausgabe:
1030417954
Der Timestamp ist die Anzahl der Sekunden, welche seit Beginn der Unix Zeitrechnung vergangen sind. Der Wert der tim(); liefert ist also von Sekunde zu Sekunde unterschiedlich. Der Timestamp wird sehr oft zu Sekundengenauen Berechnung von Zeitabständen benötigt. (zb. Spamschutz).
Beispiel Nummer 11.2
<?
$datum= date("d.m.y");
echo("$datum");
?>
In diesem Beispiel dreht sich alles um die Funktion date();, welche dir das aktuelle Datum in einer selbst definierbaren Form zurück gibt.
d steht hierbei für Tag. m für Monat und y für Jahr.
Hier eine kleine Übersicht über die verschiedenen Möglichkeiten:
d Tag des Monats, zweistellig z.b. 03, 28
j Tag des Monats 7, 13
m Nummer des Monats, zweistellig z.b. 01, 11
n Nummer des Monats z.b. 2, 10
y Jahr zweistellig z.b. 99, 00
Y Jahr vierstellig z.b. 1999, 2001
H Stunde im 24-Stunden-Format, zweistellig z.b. 08, 16
G Stunde im 24-Stunden-Format z.b. 7, 18
i Minuten, zweistellig z.b. 08, 45
s Sekunden, zweistellig z.b. 06, 56
w Wochentag in Zahlenwert z.b. 2, 6
Kapitel 12 - Zeichenkettenfunktionen
In diesem Kapitel werden dir einige wichtige Zeichenkettenfunktionen erklärt. Aber fangen wir mal ganz logisch am Anfang an - und zwar mit der Frage was man unter dem schrecklich kompliziert klingendem Namen "Zeichenkettenfunktionen" versteht. Unter einer Zeichenkette versteht man ein String. Ein String wiederum ist eine ansammlung von hintereinanderstehenden Zeichen. Kurz gesagt ein String sind meist Sätze, ein langer Text, oder Wörter also eine Zeichenkette.
Beispiel Nummer 12.1:
$string = ("Hallo ich bin ein String - ist das nicht toll?!");
Mittels der oben angekündigten Zeichenkettenfunktionen können wir Stings beliebig manipulieren. Manipulationen sind oftmal sehr wichtig. Stelle dir einfach folgende Situation vor:
Du hast auf deiner Homepage ein Online Shop in Betrieb. Bevor ein Kunde einen Artikel endgültig bestellen kann muss er sich natürlich registrieren. Er gibt also sein Username und sein Passwort ein. Nun gibt der User ausversehen zu Beginn der Passwort eingabe ein Leezeichen ein - Folge: Kunde kann später sich nichtmehr einloggen weil er ja das richtige Passwort mit Leertaste zu Beginn des Strings nicht kennt. Also was macht ein Kluger Shopinhaber? Logisch - er lässt PHP automatisch alle Leerzeichen am Anfang und Ende des Strings entfernen.
Dies ist nur ein kleines Beispiel, welches aber die Einsatzmöglichkeiten von Zeichenkettenfunktionen demonstriert. Aber lass uns @),mit der ersten Zeichenkettenfunktion beginnen:
Zeichenkettenfunktion: chop();
Merke: Die Zeichenkettenfunktion chop(); entfernt Leerzeichen am Ende eines Strings.
Beispiel Nummer 12.2
$string = ("Ich bin ein toller String ");
$chop = chop($string);
echo([$chop]);
Ausgabe:
[Ich bin ein toller String]
Zeichenkettenfunktion: explode();
Merke: Teilt einen String nach einem Trennzeichen.
Zusatz: Die explode Funktion ist eine sehr wichtige Funktion. Du wirst ihr oft begegnen. Also aufgepasst ;)
Beispiel Nummer 12.3:
$string = ("Es.wäre.gut.gewesen.diesen.Satz.ohne.Punkte.zu.s chreiben");
$array = explode(".",$string);
Hinweis: Nun haben wir mittels explode die Wörter aufgeteilt und diese befinden sich nun abrufbereit in einem Array.
Beispiel Nummer 12.4
$string = ("Es.wäre.gut.gewesen.diesen.Satz.ohne.Punkte.zu.s chreiben");
$array = explode(".",$string);
echo("$array[0] $array[1] $array[2] ... usw");
Zeichenkettenfunktion: htmlspecailchars();
Merke: Die Funktion htmlspecialchars wandelt HTML Code in Spezielle HTML Symbole um.
Beispiel Nummer 12.5
$string = ("<b>Ich bin ein String mit HTML</b>");
$html = htmlspecialchars($string);
echo("$html");
Ausgabe:
<b>Ich bin ein String mit HTML</b>
Hinweis: Es wird dank htmlspecialchars nicht wie normalerweise der String "fett" dargestellt.
Zeichenkettenfunktion: ltrim();
Merke: ltrim(); entfernt Leerzeichen am Linken Rand eines Strings.
Beispiel Nummer 12.6:
$string = (" Ich bin ein toller String");
$ltrim = ltrim($string);
echo([$ltrim]);
Ausgabe:
[Ich bin ein toller String]
Zeichenkettenfunktion: md5();
Merke: md5(); Berechnet die md5 Zeichenfolge.
Hinweis: Zu dieser Funktion gibt es einiges Mehr zu sagen, weil der Satz "Berechnet die md5 Zeichenfolge." vielen nicht einleuchten wird. Also angenommen du hast ein kleines Forum programmiert. Die User müssen sich aber bevor sie dieses nutzen können sich anmelden und unter anderem ein Passwort angeben welches zum Beispiel in einer Datenbank abgespeichert wird. Wenn nun die Datenbank gehackt wird so hat der Hacker die gesamten Passwörter deiner User. Um dies zu verhindern musst du nur auf einen String die Funktion md5 anwenden und schon wird das Passwort verschlüsselt - und zwar so, dass es unmöglich ist diese verschlüsselten Passwörter wieder zu entschlüsseln.
Beispiel Nummer 12.7:
$passwort = ("123456");
$passwort_md5 = md5($passwort);
echo("Dein md5 Passwort lautet: $passwort md5");
Ausgabe: e10adc3949ba59abbe56e057f20f883e
Zeichenkettenfunktion: nl2br();
Merke: Diese Funktion wandelt Zeilenumbrüche in <br> Tags um.
Hinweis: Du hast ein Gästebuch programmiert. Ein User füllt das Formular aus und klickt auf absenden. Du wirst merken, dass der Text ohne einen scihtbaren Zeilenumbruch zu sehen ist. Wendest du auf den String die Funktion nl2br um wird sich das Problem in Luft auflösen - denn wenn du nun in ein Textfeld auf "ENTER" drückst wird automatisch ein <br> Tag erzeigt.
Beispiel Nummer 12.8:
$nl2br = ("Hallo
ich bin toll");
$show = nl2br($nl2br);
Zeichenkettenfunktion: strlen();
Merke: Diese Zeichenkettenfunktion überprüft die Länge des Strings.
Beispiel Nummer 12.9:
<?
$ @),ng = ("Hallo Welt");
$count = strlen($string);
echo("$count");
?>
Erklärung: Auf den String $string (Hallo Welt) wurde die Funktion strlen angewendet. Der Rückgabewert wird in der Variable $count gepeichert und anschließend mittels des echo Befehles ausgegeben.
Bildschirmausgabe:
10
Zeichenkettenfunktion: substr();
Merke: Die Funktion substr gibt eine bestimmte Anzahl an Zeichen eines Strings zurück.
Beispiel Nummer 12.10:
<?
$string = ("Hilfe ich werde abgeschnitten");
$substring = substr($string,0,2);
echo("$substring");
?>
Erklärung: Zunächst wird eine Variable definiert - $string (Hilfe ich werde abgeschnitten). Auf diesen wird dann die Funktion substr(); angewendet.
Syntax: substr(String,Anfangsposition,Anzahl der Zeichen die übergeben werden sollen);
Bildschirmausgabe:
Hi
Erklärung: Der neuen Variable ($substring) wird nur vom Zeichen 0 beginnend 2 Zeichen übergeben.