spacer
    home > webdesign > PHP referenzen
spacer
Webdesign PHP Referenzen

 

PHP-Referenzen

Einführung

 

PHP in HTML einbinden

HTML-Dateien bestehen aus Text. Zur Textauszeichnung gibt es bestimmte Zeichen aus dem normalen Zeichenvorrat. Es gibt 4 Möglichkeiten PHP in HTML einzubinden:

Beispiel:

1. <? ... ?>
2. <?php ... ?>
3. <script language="php"> ... </script>
4. <% ... %>

"..." steht für beliebige PHP-Befehle.

Hello World

Das klasische Beispiel mit dem jeder Programmiersparchenurs beginnt, gibt die Worte 'Hello World' auf dem Bildschirm aus.

Beispiel:

<?
echo "Hello World";
?>

Merke: Alle PHP-Befehle werden mit ";" abgeschlossen.

Variablen

Um sinnvolle Anwendungen erstellen zu können, benötigen wir Variablen.

Merke: Alle Variablennamen beginnen mit $.

Beispiel:

$text = "Ich bin ein String !";
echo $text;
$i = 10;
$j = 5;
echo $i,"+"$j,"=",$i+$j;

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.

Rechenoperationen

Folgende Rechenoperationen stehen in PHP zur Verfügung:

Beispiel:

"+": 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üpfung von Strings

Dazu kommen noch ein paar Abkürzungen, um dem Programmierer das Leben zu erleichtern:
$i++ erhöht $i um 1.
$i-- erniedrigt $i um 1

Ablaufsteuerung

Vergleichsmöglichkeiten

Folgende Operationen dienen dazu Variablen zu vergleichen

Beispiel:

$i<10: Ist i kleiner als 10?
$i>10: Ist i größer als 10
$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:
($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?

if Abfrage

Die if Abfrage ist mit die wichtigste Operation zur Ablaufsteuerung und wird so auch in diversen anderen Programiersprachen eingesetzt.

Beispiel:

if ($i<0) {
   echo "$i ist kleiner als Null";
} else {
   echo "$i ist nicht kleiner als Null";
}

Man kann diesen Befehl auch schachteln:
if ($i<0) {
   echo "$i ist kleiner als Null";
} else if ($i>0) {
   echo "$i ist groesser als Null";
} else {
   echo "$i ist Null";
}

switch Abfrage

Hat man mehrere Tests der gleichen Variable, so kann man mit dem switch-Befehl im vergleich zur if Abfrage evtl. Arbeit einsparen:

Beispiel:

switch ($name) {
case "Juergen":
   echo "Ich bin der kluge Juergen";
   break;
case "Hans":
   echo "Ich bin der dumme Hans";
   break;
default:
   echo "Wir sind der Rest";
}

Nachdem die Befehle (in unserem Fall echo "") abgearbeitet sind, springt man mit break aus dem switch-Befehl heraus.

2.4 for Schleife

Die for Schleife wird dazu benutzt, wenn eine Anweisung eine bestimmte Anzahl wiederholt werden soll. Der for-Befehl besteht aus drei Ausdrücken:

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.

Beispiel:

$t = "Ich soll meine Uebungsaufgaben selbst erstellen!";
   for ($i=0;$i<10;$i++) {
       echo $t;
   }

while Schleife

Die for Schleife wird dazu benutzt, wenn eine Anweisung eine unbestimmte Anzahl wiederholt werden soll.

Beispiel:

$t = "Ich soll meine Uebungsaufgaben selbst erstellen!";
$i = 0;
   while ($i<10) {
       echo $t;
       $i++;
   }

Bilder/Dateien

 

3.1 Dateien einbinden

Der Befehl include() 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.

Beispiel:

include("dateiname");

3.2 Dateien lesen/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 ohne Anbindung einer Datenbank zu erzeugen.

Dazu muss als erstes mittels eines FTP Programms eine Datei erstellt werden, anschließend setzt man durch den FTP Befehl site chmod xyz DATEINAME die Rechte für die Datei.

x, y, z sind 3 Ziffern, die die Rechte für den Datei-Eigentümer, die Benutzergruppe des Datei-Eigentümers (das sind üblicherweise alle anderen Benutzer auf dem Computer) und den Rest der Welt bestimmen.

Jede der 3 Ziffern liegt zwischen 0 und 7.

0 bedeutet: keinerlei Zugriffsrecht.
1 bedeutet: Ausführrecht (wichtig bei Programmen und Verzeichnissen).
2 bedeutet: Schreibrecht (was gleichzeitig auch "Löschrecht" ist).
4 bedeutet: Leserecht.

Die Zahlen können beliebig addiert werden.

Zum Beispiel: site chmod 777 DATEINAME gibt jedem das Recht, alles mit der Datei DATEINAME anzustellen. Nachdem die Datei jetzt erstellt wurde, kommen wir nun zum auslesen dieser Datei:

Beispiel:

  1. Zuerst müssen wir die Datei öffnen, dabei muß angegeben werden, was mit der Datei geschehen soll: Wollen wir lesen, schreiben, anhängen,...

  2. Der Befehl lautet: $datei = fopen("xxx","r"); Das heißt, wir öffnen die Datei mit dem Namen xxx und wollen darin lesen ("r"). Die technischen Details lassen wir dabei von der Variablen $datei regeln, d.h. wenn wir später aus der Datei lesen wollen, so benützen wir die Variable $datei.

  3. Nun lesen wir zeilenweise den Inhalt der Datei, und zwar so lange, bis wir ans Ende der Datei gelangt sind:

    while (!feof($datei)) {
        $zeile = fgets($datei,1000);
        echo $zeile;
        }

  4. Schließlich muß die Datei noch geschlossen werden: fclose($datei);

feof($datei) ist wahr, sobald wir an das Datei-Ende gelangt sind. $zeile = fgets($datei,1000); liest maximal die nächsten 1000 Zeichen, hört aber auf, sobald eine neue Zeile beginnt, oder das Ende der Datei erreicht ist.echo $zeile; gibt einfach das Gelesene wieder aus.

Folgende Möglichkeiten gibt es, eine Datei zu öffnen:

"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...)

Mit dem Befehl:

fwrite($datei, "Ein Text");

kann der String Ein Text in die Datei geschrieben werden.

3.3 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.

Beispiel:

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.

Der Befehl bewirkt im einzelnen:

Header( "Content-type: image/gif"); teilt dem Browser mit, daß nun ein GIF-Bild kommen wird.

$im = imagecreate(200,100);erzeugt ein Bild, das 200 Pixel breit und 100 Pixel hoch ist.

$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);berechnet die Farbe

ImageFilledRectangle($im,0,0,200,100,$blue);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.

ImageGif($im);erzeugen zuerst ein GIF-Bild

ImageDestroy($im); gibt den internen Speicherplatz für das Bild frei.

SQL-Grundlagen

 

4.1 SQL Grundlagen

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:

4.2 Verbindung zur Datenbank

Zuerst muß eine Verbindung von PHP zum Datenbank-Server (d.h. dem Computer, auf dem die Datenbank liegt) hergestellt werden:

<?
$verbindung = @mysql_connect("localhost","$benutzer","$passwort");
?>

localhost bedeutet, wir verbinden uns zum gleichen Computer, auf dem sich auch der Webserver befindet. Dies funktioniert, da in unserem Fall Webserver und Datenbank auf einem Rechner liegen. Wie man vielleicht erahnt, kann also auch auf eine Datenbank auf einem beliebigen anderen Rechner im Internet zugegriffen werden - vorausgesetzt man besitzt die entsprechende Berechtigung. $benutzer ist ein gültiger Benutzername für diese Datenbank (dies wurde vom Datenbank-Verwalter so festgelegt). $passwort entspricht dem Passwort des Benutzers.

Beispiel:

if (!$verbindung) {
    echo "Keine Verbindung möglich!";
    exit;
}

Hiermit können wir überprüfen, ob die Verbindung geklappt hat.

4.3 Datenbankabfragen

Steht die Verbindung, so können wir die Abfrage starten. Zur besseren Übersicht schreiben wir die SQL-Abfrage in eine Variable ($abfrage). Diese Abfrage wird an den Datenbank-Server geschickt. Das Resultat fangen wir in der Variablen $erg auf. Die erste Variable gibt die Datenbank an, die wir abfragen wollen. Die zweite Variable enthält den SQL-Befehl, die dritte Variable enthält die Verbindung, die mit mysql_connect geschaffen wurde.

Beispiel:

$verbindung = @mysql_connect("localhost","$benutzer","$passwort"); $abfrage = "SELECT name from kunde"; $erg = mysql_db_query("datenbankname",$abfrage,$verbindung);

Die erste Variable gibt die Datenbank an, die wir abfragen wollen. Die zweite Variable enthält den SQL-Befehl, die dritte Variable enthält die Verbindung, die mit mysql_connect geschaffen wurde.

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 Spalte Name angefordert. Diese lesen wir nun zeilenweise aus:

list($Name) = mysql_fetch_row($erg);

Die Variable $erg enthält nach der Abfrage Zeilen mit jeweils einer Spalte (Name). mysql_fetch_row($erg) gibt genau eine Zeile aus. Zu Beginn steht eine Art Zeiger auf der ersten Zeile, führt man den Befehl mysql_fetch_row($erg) aus, rutscht der Zeiger zur nächsten Zeile usw. Will man alle Zeilen ausgeben, empfiehlt sich eine Schleife:

while (list($Name,$Art) = mysql_fetch_row($erg)) {
    echo "$Name ist ein(e) $Art";
}

Die Ergebnisse verarbeiten wir also zeilenweise zu HTML-Text. · Am Ende empfiehlt es sich, die Verbindung zur Datenbank zu kappen:

mysql_close($verbindung);

Funktionen

 

5.1 Funktionen allgemein

Ein wichtiger Bestandteil einer jeden Programmiersprache ist die Fähigkeit, mehrere Befehle zu einem einzigen Befehl zusammenzufassen, d.h. neue Funktionen zu definieren und diese dann beliebig oft auszuführen. PHP hat diese Fähigkeit selbstverständlich auch.

Wir wollen für eine Anzahl von Tagen berechnen, wieviele Sekunden diese Tage zusammen haben:

Beispiel:

function tag ($anzahl) {
    $sekunden = 3600 * 24 * $anzahl;
    return $sekunden;
}
$x = tag(7);
echo "7 Tage bestehen aus $x Sekunden !";

$anzahl nennt man auch Argument der Funktion. Eine Funktion kann mehrere Argumente, oder auch kein Argument besitzen:

5.2 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.

Beispiel:

$x = " Ich bin eine Zeichenkette! ";
$y = trim($x);

Die Befehle ltrim() und chop() entfernen whitespace vor, bzw. nach der Zeichenkette

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:

$x = nl2br($y);

ersetzt alle Zeilenumbruch-Zeichen ("\n") des Strings $y in die Zeichenfolge <br>\n.

Cookies

 

6.1 Cookies setzen

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:

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.

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!)

Beispiel:

<?
$t = time()+3600*24*10;
SetCookie("mycookie","Schon besucht",$t,"/test",".de");
?>

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:

Beispiel:

function tage ($anzahl) {
    $sekunden = time()+ 3600 * 24 * $anzahl;
    return $sekunden;
}
SetCookie("mycookie","Schon besucht",tage(10),"/test",".de");

6.2 Cookies auslesen

Cookies lesen ist mit PHP wieder sehr einfach realisiert: Der Inhalt des Cookies ist in einer Variablen mit dem Namen des Cookies enthalten:

Beispiel:

echo "$mycookie";

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:

SetCookie("mycookie");

 

 

 

 

Copyright © 2004 -2006 by Stefan Reiser . Alle Rechte vorbehalten.

 
 
Schnellsuche
Suchen
       
   
 
 
sonstiges
  aktuelle Internet-News
  Scripte
  Webtools
  Suchmaschineneintrag
  Templates
  Provider
 
Bücher-Flash
 

 

Google
Web www.multi-online.com