Hier stelle ich euch ein wenig die PHP Welt vor,
Viel Spaß beim Lesen und ausprobieren.
P.S: Ein wenig Vorkenntnis wäre angebracht.
1) PHP Befehle in HTML einbauen
Dazu gibt es 4 Möglichkeiten:
"..." steht für beliebige PHP-Befehle.Quote:
<?php ... ?>
<? ... ?>
<script language="php"> ... </script>
<% ... %>
2) Unser erster PHP-Befehl!
Der echo-Befehl gibt Texte (sogenannte Strings) aus:
Quote:
<?
echo "Hallo";
?>
Merke: Alle PHP-Befehle werden mit ";" abgeschlossen. Es gibt eine Reihe von Sonderzeichen. Wichtigstes Sonderzeichen: "\n": Neue Zeile.
C- oder Perl-Kennern ist sind diese Zeichen natürlich vertraut.
Man beachte dabei den Unterschied zuQuote:
echo "Hallo\n";
echo "Hallo\n";
Im ersten Fall wird lediglich im vom Webserver ausgelieferten HTML-Text ein Zeilumbruch durchgeführt.Quote:
echo "Hallo<BR>";
echo "Hallo<BR>";
Ausgegraben: Ext. Festplatte
Geschrieben am: 2009
Autor: Cael.
3) Variablen
Um sinnvolle Anwendungen erstellen zu können, benötigen wir Variablen.
Der Typ der Variablen (ganze Zahl, Gleitpunktzahl, String) wird je nach Verwendung von PHP automatisch bestimmt. Der Benutzer braucht sich darum nur in Spezialfällen kümmern.Quote:
$text = "Ich bin ein String !";
echo $text;
echo $text,$text,$text;
$l = "langer";
$k = "kurzer";
echo "Ich bin ein $l$l$l$l$l$l Text!";
echo "Ich bin ein $k Text!";
$i = 10;
$j = 5;
echo $i,"+"$j,"=",$i+$j;
4) Vordefinierte Variablen
Da PHP speziell zur Erzeugung von dynamischen Webseiten geschaffen wurde, ist es ein Kinderspiel, Eingaben, die aus HTML-Formularen stammen, zu bearbeiten. Ein Beispiel:
Der HTML-Formular-Kenner sieht sofort: Beim Klicken auf den Submit-Button wird also die Datei tuwas.html aufgerufen. Diese Datei könnte dann so aussehen:Quote:
<FORM ACTION="tuwas.html" METHOD=POST>
<INPUT NAME="beliebigername">
<INPUT TYPE="submit">
</FORM>
Kurz gesagt: der Text, der in das Formularfeld beliebigername eingegeben wurde, ist dann in der PHP-Variablen $beliebigername enthalten. Achtung: Anfänger sollten immer METHOD=POST beim Formular angeben!Quote:
<?
echo "Sie haben $beliebigername eingegeben. ";
?>
5) Einfache Rechenoperationen
Folgende Rechenoperationen stehen in PHP zur Verfügung:
Quote:
"+": Addition, $i+$j,
"-": Subtraktion, $i-$j
"*": Multiplikation, $i*$j
"/": Division, $i/$j
"%": Reste-Bildung, $i%$j: z.B. 23%17 ergibt 6, da 23 geteilt durch 17 gleich 1 Rest 6 ist.
".": Verknüpft Strings:
$l = "langer";
$k = "kurzer";
echo $l.$k;
- ergibt langerkurzer
Der Unterschied zwischen $i++ und ++$i ist:Quote:
$i++ erhöht $i um 1.
++$i erhöht $i ebenfalls um 1.
$i-- erniedrigt $i um 1.
--$i erniedrigt $i ebenfalls um 1.
gibt 0 aus, anschließend wird $i auf den Wert 1 erhöht.Quote:
$i=0;
echo $i++;
Quote:
$i=0;
echo ++$i;
erhöht zuerst $i auf 1 und gibt den Wert 1 aus.
6) Erste Schleifen
Gleich ein Beispiel:
Hier wird 10-mal der Text in der Variablen $t ausgegeben. Zu Beginn wird $i auf 0 gesetzt. $i wird in jedem Schleifendurchlauf um 1 erhöht, bis $i den Wert 10 erreicht. Dann ist die Bedingung ($i<10) nicht mehr wahr und die Schleife bricht ab.Quote:
$t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n";
$i = 0;
while ($i<10) {
echo $t;
$i++;
}
7) Weitere Befehle zur Ablaufkontrolle
In 6 haben wir die erste Möglichkeit kennengelernt, eine Programm-Schleife zu erzeugen. Statt
kann man auch schreiben:Quote:
$t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n";
$i = 0;
while ($i<10) {
echo $t;
$i++;
}
Was ist der Unterschied?Quote:
$t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n";
$i = 0;
do {
echo $t;
$i++;
} while ($i<10);
Man bemerkt den Unterschied, wenn z.B. statt $i=0; zu Beginn $i=10; gesetzt wird. Im ersten Fall ist die Bedingung ($i<10) nicht wahr und die Befehle innerhalb der geschweiften Klammern werden nicht ausgeführt. Im zweiten Fall werden zuerst die Befehle innerhalb der geschweiften Klammern ausgeführt, danach wird getestet, ob ($i<10). Dies ist nicht der Fall, also wird abgebrochen. D.h. aber, die Schleife wird mindestens einmal durchlaufen.
Eine weitere Möglichkeit, eine Schleife zu programmieren, ist der for-Befehl. Gleich ein Beispiel:
Der for-Befehl besteht aus drei Ausdrücken.Quote:
$t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n";
for ($i=0;$i<10;$i++) {
echo $t;
}
for (ausdruck1;ausdruck2;ausdruck3) { ... }
- Mit ausdruck1 wird die Schleife initialisiert, d.h. normalerweise wird die Variable, die die Schleifendurchläufe zählt, auf den Anfangswert gesetzt.
- ausdruck2 gibt die Abbruchbedingung an.
- In ausdruck3 wird die Variable, die die Schleifendurchläufe zählt, erhöht bzw. erniedrigt.
Ausgegraben: Ext. FestplatteQuote:
$t = "Ich soll meine Uebungsaufgaben selbst erstellen!<BR>\n";
for ($i=10;$i>0;$i--) {
echo $t;
}
Geschrieben am: 2009
Autor: Cael.
8) Fallunterscheidungen
Zur Fallunterscheidung gibt es den if-Befehl:
oder auchQuote:
if ($i<0) {
echo "$i ist kleiner als Null\n";
}
Man kann diesen Befehl auch schachteln:Quote:
if ($i<0) {
echo "$i ist kleiner als Null\n";
} else {
echo "$i ist nicht kleiner als Null\n";
}
Hat man mehrere Tests der gleichen Variable, so kann man mit dem switch-Befehl evtl. Arbeit einsparen:Quote:
if ($i<0) {
echo "$i ist kleiner als Null\n";
} else if ($i>0) {
echo "$i ist groesser als Null\n";
} else {
echo "$i ist Null\n";
}
Falls die Variable $name den Wert "Hans" hat, wird als nächster BefehlQuote:
switch ($name) {
case "Heinrich":
echo "Ich bin der kluge Heinrich";
break;
case "Hans":
echo "Ich bin der dumme Hans";
break;
case "Agathe":
echo "Ich bin die Agathe und klüger als Heinrich und Hans";
break;
default:
echo "Wir sind der Rest";
}
ausgeführt. Normalerweise würden dann alle nachfolgenden Befehle ausgeführt werden, u.a.Quote:
echo "Ich bin der dumme Hans";
Dies ist meist nicht erwünscht, man springt deshalb mit break aus dem switch-Befehl heraus.Quote:
echo "Ich bin die Agathe und klüger als Heinrich und Hans";
9) Weitere Vergleichsmöglichkeiten
Bisher konnten wir testen, ob $i<10 oder $i>10 gilt. Es gibt aber noch mehr Möglichkeiten:
Quote:
$i==10: Ist $i gleich 10?
$i!=10: Ist $i ungleich 10?
$i>=10: Ist $i größer oder gleich 10?
$i<=10: Ist $i kleiner oder gleich 10?
Man kann auch kombinieren:
10) Nochmals vordefinierte VariablenQuote:
($i==10) && ($j>0): Ist $i gleich 10 und $j größer als 0?
($i==10) || ($j==0): Ist $i gleich 10 oder $j gleich 0?
In 4 haben wir gelernt, daß in einer PHP-Datei, die aus einem Formular gestartet wird, die Namen der Formular-Elemente als Variablen zur Verfügung stehen. Dies kann man nützen, um Formular und Befehle, die das Formular behandeln, in eine einzige Datei zu schreiben:
Angenommen unsere Datei form.html enthält folgendes Formular:
Quote:
<FORM ACTION="form.html" METHOD=POST>
<INPUT NAME="beliebigername">
<INPUT TYPE="submit">
</FORM>
Dann ruft sich beim Klicken auf submit die Datei selbst auf. Allerdings ist dann die Variable beliebigername beliebiger Name gesetzt. Dies können wir folgendermaßen ausnützen:
Quote:
<?
if (isset($beliebigername)) {
echo "Sie haben $beliebigername eingegeben\n";
}
?>
<P>
<FORM ACTION="form.html" METHOD=POST>
<INPUT NAME="beliebigername">
<INPUT TYPE="submit">
</FORM>
Wird die Datei zum ersten Mal aufgerufen, d.h. ohne daß man auf den submit-Button klickt, so ist die Variable $beliebigername nicht gesetzt, der Ausdruck isset($beliebigername) ist also nicht wahr. Füllt man das Formular dann aus und klickt auf submit, so ist die Variable gesetzt, isset($beliebigername) ist wahr, und es wird "Sie haben $beliebigername eingegeben\n"; ausgegeben. Will man danach abbrechen, so sollte der Befehl
verwendet werden.Quote:
exit;
11) Dateien hinzuladen
Der Befehl
liest den Inhalt der Datei dateiname so, als ob er an dieser Stelle stehen würde. Damit kann z.B. einheitliches Layout bei einer größeren Anzahl von Dateien erreicht werden.Quote:
include("dateiname");
12) Dateien lesen und schreiben
Wir wollen nun von Dateien, die auf dem Server liegen, lesen, bzw. in diese Dateien etwas hineinschreiben. Dies ist nützlich, um z.B. Zähler oder Gästebücher zu erzeugen. Wichtig:
Aus Sicherheitsgründen ist der Webserver einem Benutzer auf dem Server-Computer zugeordnet, der sehr wenig Rechte hat. U.a. darf er nicht einfach in eine Datei in ihrem Verzeichnis schreiben. Genausowenig darf er eine Datei in Ihrem Verzeichnis erzeugen.
OK. Gehen wir davon aus, daß wir nun eine Datei mit dem Namen xxx haben, deren Inhalt wir lesen wollen.
- Zuerst müssen wir die Datei öffnen, dabei muß angegeben werden, was mit der Datei geschehen soll: Wollen wir lesen, schreiben, anhängen,...
Der Befehl lautet
Quote:$datei = fopen("xxx","r"); - Nun lesen wir zeilenweise den Inhalt der Datei, und zwar so lange, bis wir ans Ende der Datei gelangt sind:
Quote:while (!feof($datei)) {
$zeile = fgets($datei,1000);
echo $zeile;
}
echo $zeile; gibt einfach das Gelesene wieder aus. - Schließlich muß die Datei noch geschlossen werden:
Quote:fclose($datei);
- "r": nur lesen, begonnen wird am Dateianfang.
- "r+": lesen und schreiben, begonnen wird am Dateianfang.
- "w": nur schreiben. Existiert die Datei bereits, wird der bisherige Inhalt gelöscht. Existiert sie nicht, wird versucht. sie zu erzeugen.
- "w+": lesen und schreiben. Ansonsten wie "w".
- "a": nur schreiben. Begonnen wird am Ende der Datei (a wie append, anhängen). Existiert sie nicht, wird versucht. sie zu erzeugen.
- "a+": lesen und schreiben. Ansonsten wie "a". Achtung: Es wird beim Lesen natürlich auch am Ende der Datei begonnen (dort steht natürlich nichts mehr...)
kann der String Ein Text in die Datei geschrieben werden.Quote:
fwrite($datei, "Ein Text");
Ausgegraben: Ext. Festplatte
Geschrieben am: 2009
Autor: Cael.
13) Bildbearbeitung
Mit PHP können wir nicht nur HTML-Text erzeugen, wir können sogar Bilder dynamisch erzeugen. Zum Beispiel können wir eine Datei "bild.php3" erstellen, die ein Bild zurückliefern wird. In diese Datei schreiben wir keine HTML-Befehle, sondern ausschließlich PHP-Befehle. Ausschließlich heißt auch, daß vor dem ersten <?-Befehl nichts, auch kein Leerzeichen oder Leerzeile, stehen darf. Ansonsten ist der Browser sofort der Überzeugung, daß ein Textdokument ankommt.
Ein Beispiel:
Quote:
<?
Header( "Content-type: image/gif");
$im = imagecreate(200,100);
$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
ImageFilledRectangle($im,0,0,200,100,$blue);
ImageGif($im);
ImageDestroy($im);
?>
Ruft man diese Datei auf, so erscheint ein blaues Rechteck. Natürlich kann diese Datei auch mit
in eine HTML-Seite eingebunden werden. Was bewirken obige Befehle? Der BefehlQuote:
<IMG SRC="bild.php3">
teilt dem Browser mit, daß nun ein GIF-Bild kommen wird. (Um Fehlermeldungen in unserer PHP-Datei angezeigt zu bekommen, können wir diesen Befehl auch zeitweise auskommentieren, indem wir davor ein #-Zeichen setzen.) Der BefehlQuote:
Header( "Content-type: image/gif");
erzeugt ein Bild, das 200 Pixel breit und 100 Pixel hoch ist. Jede Farbe, die wir verwenden wollen, muß zuerst erzeugt werden. Dies geschieht mit dem BefehlQuote:
$im = imagecreate(200,100);
Dabei bezeichnet $im das Bild, für das wir die Farbe erzeugen wollen, während die restlichen drei Parameter die hexadezimalen RGB-Werte sind. (Man beachte die Schreibweise: 0x2c ergibt den dezimalen Rot-Anteil 36.) MitQuote:
$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
zeichnen wir ein ausgefülltes Rechteck, das bei 0,0 (links oben) beginnt und 200 Pixel nach rechts und 100 Pixel nach unten endet, und in der eben erzeugten Farbe $blue gefüllt ist. Der BefehlQuote:
ImageFilledRectangle($im,0,0,200,100,$blue);
erzeugen zuerst ein GIF-Bild aus der internen Darstellung und sendet es an den Betrachter, währendQuote:
ImageGif($im);
den internen Speicherplatz für das Bild freigibt. Es gibt nun eine Reihe von weiteren Möglichkeiten. Zum Beispiel kann noch ein Text in das Bild geschrieben werden:Quote:
ImageDestroy($im);
Der erste Befehl erzeugt weiße Farbe: Man sieht, die RGB-Werte können auch als Dezimal-Werte angegeben werden. Der zweite Befehl schreibt den Text "Hallo" in Schriftgröße 5 beginnend bei Position 20,20 (20 Pixel nach rechts, 20 Pixel nach unten). Die beiden Befehle sollten direkt vor ImageGif($im); stehen.Quote:
$white = ImageColorAllocate($im, 255,255,255);
imagestring($im, 5, 20, 20, "Hallo", $white);
Ausgegraben: Ext. Festplatte
Geschrieben am: 2009
Autor: Cael.
14) Zugriff auf Datenbanken
Eines der Haupteinsatzgebiete von PHP ist der Online-Zugriff auf Datenbanken. Was ist eine Datenbank?
Vereinfacht gesagt: Eine Datenbank enthält Datensätze, die mit einer speziellen Sprache bearbeitet werden können. Zum Beispiel können bestimmte Datensätze ausgelesen werden, neue Datensätze hinzugefügt werden, Datensätze können aktualisiert oder gelöscht werden. All diese Vorgänge nennt man Abfragen.
Weit verbreitet sind sogenannte SQl-Datenbanken, d.h. Datenbanken, die mit der Sprache SQL (Abkürzung für Structured Query Language) bearbeitet werden können. PHP kann mit Datenbanken verschiedener Hersteller umgehen, besonders beliebt ist die Datenbank MySQL
Vorteile von MySQL:
relativ schnell und kostenlos.
Um eine SQL-Abfrage mit PHP auszuführen, muß zuerst die Datenbank geöffnet werden, dann wird die SQL-Befehlszeile an die Datenbank geschickt, die Antwort der Datenbank wird aufgenommen und schließlich wird die Datenbank-Verbindung wieder geschlossen.
Zuerst müssen wir uns etwas Hintergrundwissen über die SQL-Befehlszeile verschaffen:
15) SQL-Grundlagen
SQL-Datenbanken bestehen aus 1 oder mehreren sogenannten Tabellen. Jeder Datensatz der Datenbank ist genau eine Zeile in einer Tabelle. Beispiel: Ein Kneipenführer für Bayreuth.
Die Tabelle kneipen:
ID Name Art Note Kommentar 1 Herzogkeller Biergarten 1 Sehr schöner Baumbestand 2 Glenk Biergarten 1 Gute Bratwürste 3 ... ... ... ...
Man kann nun auf eine dieser Tabellen zugreifen, aber auch Tabellen verküpfen. Wir wollen uns hier der Einfachkeit halber auf eine einzige Tabelle beschränken.
Es gibt im wesentlichen vier Abfragemöglichkeiten:
Will man z.B. alle kneipennamen, die sich in der Datenbank befinden, auslesen, so gibt man den SQL-BefehlQuote:
Auslesen: SELECT
Einfügen: INSERT
Überschreiben: UPDATE
Löschen: DELETE
ein. Will man Name und Art der Kneipe ausgeben, so lautet der BefehlQuote:
SELECT Name FROM kneipen;
Soll schließlich die ganze Zeile ausgelesen werden, so genügt der BefehlQuote:
SELECT Name,Art FROM kneipen;
Die auszulesenden Datensätze können nun noch weiter spezifiziert werden:Quote:
SELECT * FROM kneipen;
Quote:
SELECT * FROM kneipen WHERE NOTE=1;
Neue Datensätze werden folgendermaßen hinzugefügt:
Vorhandene Datensätze können mitQuote:
INSERT kneipen (Name,Art,Note,Kommentar) VALUES ('Glenk','Biergarten','1','Gute Bratwürste');
überschrieben werden. Das soll als erster Einblick genügen. SQL ist eine sehr mächtige Abfragesprache, insbesondere für Kombinationsabfragen aus mehreren Tabellen gleichzeitig (inner joins, outer joins,...) existiert eine eigene, beinahe mathematische Theorie.Quote:
UPDATE kneipen SET Note='2',Kommentar='Die Bratwürste lassen nach' WHERE ID=2;
16) SQL-Befehle mit PHP
Die obigen SQL-Befehle verwenden wir nun mit PHP. Wir wollen als Beispiel alle Datensätz aus der Tabelle kneipen in der Datenbank www2 ausgeben.
- Zuerst muß eine Verbindung von PHP zum Datenbank-Server (d.h. dem Computer, auf dem die Datenbank liegt) hergestellt werden: Quote:
$verbindung = @mysql_connect("localhost","nobody","");
nobody ist ein gültiger Benutzername für diese Datenbank (dies wurde vom Datenbank-Verwalter so festgelegt).
"" bedeutet, dieser Benutzer benötigt kein Password. - Wir können überprüfen, ob die Verbindung klappt:
Quote:if (!$verbindung) {
echo "Keine Verbindung möglich!\n";
exit;
} - Steht die Verbindung, so können wir die Abfrage starten. Zur besseren Übersicht schreiben wir die SQL-Abfrage in eine Variable:
Quote:$abfrage = "SELECT Name,Art from kneipen";
Quote:$erg = mysql_db_query("www2",$abfrage,$verbindung); - Nun kommt eine etwas kniffliger Arbeit:
Wir müssen aus $erg die zurückgelieferten Datensätze auslesen. Hätten wir einen INSERT, UPDATE oder DELETE Befehl verschickt, bräuchten wir nur testen, ob $erg wahr oder falsch ist, d.h. ob die Abfrage geklappt hat oder nicht. Da wir aber den SELECT-Befehl an die Datenbank geschickt haben, wollen wir die von der Datenbank zurückgelieferten Datensätze auslesen.
Wir haben pro Datensatz die beiden Spalten Name und Art angefordert. Diese lesen wir nun zeilenweise aus:
Quote:list($Name,$Art) = mysql_fetch_row($erg);
Quote:while (list($Name,$Art) = mysql_fetch_row($erg)) {
echo "$Name ist ein(e) $Art<BR>\n";
} - Am Ende empfiehlt es sich, die Verbindung zur Datenbank zu kappen: Quote:
mysql_close($verbindung);
17) Ein weiterer SQL-Befehl
Nachdem wir nun ein wenig Erfahrung mit SQL-Befehlen sammeln konnten, trauen wir uns auch an den DELETE-Befehl heran. Wichtig ist für diesen Befehl, daß ganz genau (und vorsichtig) spezifiziert wird, welcher Datensatz oder welche Datensätze aus der Datenbank gelöscht werden sollen. In unserem Beispiel ist es am besten, wenn man über das Feld ID den zu löschenden Datensatz angibt, denn dieses Feld enthält für jeden Datensatz eine eindeutige Nummer. Wollen wir den Datensatz mit ID=120 löschen, so geben wir als Abfrage an:
Achtung: Vergißt man den WHERE-Teil, werden alle Datensätze der Tabelle gelöscht! Als Ersteller einer dynamischen Webseite mit PHP und einer Datenbank sollte man also immer genau darüber nachdenken, was den Betrachtern erlaubt werden soll und was nicht.Quote:
$abfrage = "DELETE FROM kneipen WHERE ID=120";
18) Funktionen
Ein wichtiger Bestandteil einer jeden Programmiersprache ist die Fähigkeit, mehrere Befehle zu einem einzigen Befehl zusammenzufassen, d.h. neue Funktionen zu definieren. PHP hat diese Fähigkeit selbstverständlich auch. Ein Beispiel:
Wir wollen für eine Anzahl von Tagen berechnen, wieviele Sekunden diese Tage zusammen haben:
$anzahl nennt man auch Argument der Funktion. Eine Funktion kann mehrere Argumente, oder auch kein Argument besitzen:Quote:
function tag ($anzahl) {
$sekunden = 3600 * 24 * $anzahl;
return $sekunden;
}
$x = tag(7);
echo "7 Tage bestehen aus $x Sekunden !";
Mehr zu den verwendeten mathematischen Funktionen kann man wiederum im Handbuch nachlesen. Problematisch ist im obigen (zugegebenermaßen etwas konstruierten) Beispiel, daß die Variable $kapital in der Funktion selbst festgelegt wird. Natürlich wird man auch diesen Wert normalerweise als Argument der Funktion übergeben, also etwa:Quote:
function zinseszins ($prozent,$laufzeit) {
$kapital = 10000.0;
$x = 1.0 + ($proz/100.0);
$y = $kapital * exp( $laufzeit*log($prozent) );
return $y;
}
$proz = 6;
$zeit = 10;
$x = $zinseszins($proz,$laufzeit);
echo "Das Kapital beträgt $x Euro";
Wir wollen aber jetzt den Fall betrachten, daß diese Variable bereits gesetzt ist, und wir sie nicht als Argument übergeben wollen. Dann müssen wir explizit angeben, daß die Variable "von außen" stammt. Dies geschieht durch den Befehl global:Quote:
function zinseszins ($prozent,$laufzeit,$kapital) { ...
Quote:
$kapital = 10000.0;
function zinseszins ($prozent,$laufzeit) {
global $kapital;
$x = 1.0 + ($proz/100.0);
$y = $kapital * exp( $laufzeit*log($prozent) );
return $y;
}
$proz = 6;
$zeit = 10;
$x = $zinseszins($proz,$laufzeit);
echo "Das Kapital beträgt $x Euro";
19) String-Funktionen
Ein weiteres wichtiges Betätigungsfeld von PHP ist die Bearbeitung von Zeichenketten. Es gibt eine ganze Reihe von Befehlen um Zeichenketten zu manipulieren, wir stellen hier nur die wichtigsten vor, der Rest kann im Handbuch nachgeschlagen werden. trim entfernt Leerzeichen, Tabulatorzeichen etc. (sogannten "whitespace") vor dem ersten und nach dem letzten "echten" Zeichen in der Zeichenkette.
Die Befehle ltrim() und chop() entfernen whitespace vor, bzw. nach der Zeichenkette Für die verspielten PHP-Programmierer: strtoupper() und strtolower() wandeln alle Zeichen eines Strings in Großbuchstaben, bzw. Kleinbuchstaben um.Quote:
$x = " Ich bin eine Zeichenkette! ";
$y = trim($x);
Achtung: Probleme kann es bei Umlauten geben.
Der Befehl ucfirst() wandelt das erste Zeichen eines Strings in Großbuchstaben um (wenn möglich).
Der Befehl ucwords() hingegen wandelt in jedem Wort eines Strings das erste Zeichen in Großbuchstaben um (wenn möglich).
Der folgende Befehl ist besonders wichtig, wenn man vorhandenen Text für das WWW aufbereiten will:
ersetzt alle Zeilenumbruch-Zeichen ("\n") des Strings $y in die Zeichenfolge <BR>\n. Daneben gibt es noch einige wichtige Funktionen, um Strings zu vergleichen, zu ersetzen und mit HTML-Sonderzeichen umzugehen.Quote:
$x = nl2br($y);
Ausgegraben: Ext. Festplatte
Geschrieben am: 2009
Autor: Cael.
20) Cookies
Als Cookies werden kurze Informationen bezeichnet, die der WWW-Server beim Client (Betrachter) hinterlassen kann. Se sind vor allem beim elektronischen Einkaufen im WWW von Bedeutung, genauer gesagt sind sie immer dann von Bedeutung, wenn der Server weitergehende Information vom Betrachter haben muß, als nur die Internet-Adresse, die eine Seite anfordert. Cookies bestehen aus folgender Information:
Beispiel: Wir wollen feststellen, ob ein Betrachter eine Seite schon einmal aufgerufen hat. Dazu setzen wir beim ersten Aufruf der Seite ein Cookie. Dies muß allerdings vor dem HTML-Head geschehen, d.h. am Anfang der Datei. (Unbedingt auch die Ausgabe von Leerzeilen, -Zeichen vor diesem PHP-Teil vermeiden!)Quote:
Name: Name
Value: Wert
expires: Verfallsdatum
domain: Adressraum der Server, die das Cookie wieder lesen dürfen.
path: Nur über Seiten, die in diesem Verzeichnis, oder Unterverzeichnissen davon liegen, darf das Cookie angefordert werden.
secure: Wenn gesetzt, darf das Cookie nur über verschlüsselte Informationskanäle übertragen werden.
Dieser Befehl setzt ein Cookie mit dem Namen mycookie auf den Wert "schon besucht" mit einem Verfallsdatum von 10 Tagen. Lesen darf dieses Cookie jeder Server mit der Endung .de, allerdings nur aus Dateien, die in einem Verzeichnis /test, oder Unterverzeichnissen davon liegen. Das Verfallsdatum des Cookie muß in Sekunden seit dem 1. Januar 1970 angegeben werden. Die Funktion time() gibt die Sekunden seit dem 1. Januar 1970 der momentanen Zeit an. Weitere Datums- und Zeitfunktionen sind im Handbuch nachzulesen. Da die Berechnung der Sekunden nicht immer ganz übersichtlich ist, empfiehlt sich die Verwendung einer Funktion:Quote:
<?
$t = time()+3600*24*10;
SetCookie("mycookie","Schon besucht",$t,"/test",".de");
?>
<HTML>
Cookies lesen ist mit PHP wieder sehr einfach realisiert: Der Inhalt des Cookies ist in einer Variablen mit dem Namen des Cookies enthalten:Quote:
function tage ($anzahl) {
$sekunden = time()+ 3600 * 24 * $anzahl;
return $sekunden;
}
SetCookie("mycookie","Schon besucht",tage(10),"/test",".de");
gibt also den Wert des Cookies aus, in unserem Fall den Text "Schon besucht". Ein Server kann mit PHP ein Cookie wieder entfernen, indem lediglich der Befehl setcookie mit dem Namen des Cookies als Argument angegeben wird:Quote:
echo "$mycookie";
Quote:
SetCookie("mycookie");
21) Variable Variable
Dies ist nun schon fortgeschrittene PHP-Programmierung: In manchen Fällen will man Schleifen über eine Menge von Variablen laufen lassen. Zum Beispiel wenn man viele Eingabefelder in einem Formular hat:
Nun ist es sehr mühsam, alle Felder einzeln zu behandeln. Will man z.B. einfach den Inhalt aller Eingabefelder ausgeben, so kann man statt der folgenden 100 BefehleQuote:
<INPUT NAME="feld0" >
<INPUT NAME="feld1" >
<INPUT NAME="feld2" >
...
<INPUT NAME="feld99" >
auch folgendermaßen vorgehen. Wir basteln uns den jeweiligen Variablennamen zusammen:Quote:
echo "feld0: $feld0 <BR>\n";
echo "feld1: $feld1 <BR>\n";
...
echo "feld99: $feld99 <BR>\n";
Mit einem $v erhalten wir den Variablennamen, mit ${$v} greifen wir auf den Inhalt der Variablen mit dem Namen $v zu.Quote:
for ($i=0;$i<100;$i++) {
$v = "feld".$i;
echo "$v: ${$v} <BR>\n";
}
22) Arrays aus Formularen
Abschließend noch ein letzter Trick: Wenn wir in einem Formular aus einer Menge von HTML-Checkboxen mit PHP ermitteln wollen, welche Checkboxen angeklickt wurden, dann scheitert die bisherige Vorgehensweise:
Schickt man dieses Formular ab, so hat die PHP-Variable $x nur den Wert der ersten angeklickten Checkbox. Der Trick ist, in HTML die Checkbox zum Beispiel so zu benennen:Quote:
<INPUT TYPE=CHECKBOX NAME="x" VALUE=1 > Option 1
<INPUT TYPE=CHECKBOX NAME="x" VALUE=2 > Option 2
Dadurch wird in PHP ein Array mit dem Namen $x existieren. Die Werte können dann so ausgelesen werden:Quote:
<INPUT TYPE=CHECKBOX NAME="x[]" VALUE=1 > Option 1
<INPUT TYPE=CHECKBOX NAME="x[]" VALUE=2 > Option 2
Quote:
for ($i=0;$i<sizeof($x);$i++) {
echo "$x[$i] ";
}
Das war es auch schon mit dem Tutorial,
Ich hoffe es hat euch weitergeholfen.
Ausgegraben: Ext. Festplatte
Geschrieben am: 2009
Autor: Cael.