|
T u t o r i a l
|
|
PHP Tutorial > Kapitel 9: Ausgeweitete Möglichkeiten
Antworten zu Fragen aus Kapitel 8:
1. Was ist eine IP-Adresse?
Jeder Internet Benutzer, der sich mit deiner Seite verbindet, hat eine IP
Adresse. Jedoch nicht eine eindeutige: Es gibt Benutzer mit dynamischen IP
Adressen.
2. Was ist ein Useragent?
Der Useragent zeigt dir Informationen über den Browser deines Besuchers.
3. Wozu ist der Referer gut?
Der Referer wird nur dann gesetzt, wenn ein Benutzer durch einen Link auf
deine Seite gelandet ist. Du kannst dann herausfinden von wo der Benutzer
gekommen ist.
IF und SWITCH
Du kennst bereits die "normale" IF Anweisung mit Else und ElseIF.
Eine weitere Schreibweise von IF Ausdrücken ist Switch.
Im folgenden Beispiel siehst du zwei verschiedene Schreibweisen die jedoch zum
selben Ergebnis führen.
Tutorial_Kapitel9_Beispiel_1.php:
<?php
$random = mt_rand(1, 3);
// Beispiel mit IF
if($random == 1) { $HausGebautAus = "Stroh"; } elseif($random == 2) { $HausGebautAus = "Gestein"; } else { $HausGebautAus = "Beton"; }
echo "Das Haus ist gebaut aus: ".$HausGebautAus;
// Beispiel mit Switch
switch($random) { case 1: $HausGebautAus = "Stroh"; break; case 2: $HausGebautAus = "Gestein"; break; default: $HausGebautAus = "Beton"; }
echo "Das Haus ist gebaut aus: ".$HausGebautAus;
?>
|
Aufbau:
switch($variable)
{
case "wert1": // Code zum Ausführen
break;
case "wert2": // Code zum Ausführen
break;
default: // Wenn nicht obriger Code ausgeführt wurde, diesen Ausführen
}
Der Switch Ausdruck prüft die angegebene Variable auf die möglichen Werte in den
"case"-Blöcken.
Der Code im "default"-Block wird ausgeführt, wenn die Werte in den "case"-Blöcken
nicht mit der Variable übereinstimmen.
Wenn Du kein "break;" verwendest, wird möglicherweise der Code aus den anderen
Blöcken ausgeführt.
Ordner in PHP
Ordner sind Verzeichnisse, die andere Dateien und Unterordner in sich
festhalten können.
Im folgenden Beispiel haben wir 3 Dateien in einem Ordner und wollen das
Verzeichnis "lesen".
/Beispielsordner/Datei1.dat:
/Beispielsordner/Datei2.dat:
/Beispielsordner/Datei3.dat:
Tutorial_Kapitel9_Beispiel_2.php:
<?php
$dir = opendir("Beispielsordner");
while(($file = readdir($dir)) !== false) { if($file != "." && $file != "..") { echo file_get_contents("./Beispielsordner/".$file); } }
closedir($dir);
?>
|
Dieses Beispiel ergibt "ABC". $dir ist in diesem Beispiel die Resource,
die ich von opendir() erhalte und
anschließend readdir() innerhalb einer
While-Schleife angebe.
Ein Ordner beinhaltet immer zwei zusätzliche Dateien. Die "." Datei und die ".."
Datei.
Wenn Du Start > Ausführen > cmd gehst und "dir" angibst siehst Du als erste zwei
Dateien "." und ".." dort stehen.
Wie Du siehst werden sie per IF Abfrage "ignoriert" und sind kein weiteres
Problem.
Dateien und Ordner umbenennen
PHP besitzt für das Umbenennen von Dateien und Ordnern die Funktion
rename().
Tutorial_Kapitel9_Beispiel_3.php:
<?php
rename("Beispielsordner", "Beispielsordner2"); rename("/Beispielsordner/Datei1.dat", "/Beispielsordner/DateiEins.dat");
?>
|
Dateien und Ordner löschen
Zum Löschen einer Datei verwendet man unlink()
und zum Löschen eines Ordners rmdir().
Tutorial_Kapitel9_Beispiel_4.php:
<?php
unlink("/Beispielsordner/Datei1.dat"); unlink("/Beispielsordner/Datei2.dat"); unlink("/Beispielsordner/Datei3.dat");
rmdir("Beispielsordner");
?>
|
Alle Dateien und Unterordner in einem Ordner müssen vor Aufruf von rmdir()
entfernt werden. Falls dies zu "kompliziert" wird, kannst du folgende Funktion
einsetzten:
Tutorial_Kapitel9_Beispiel_5.php:
<?php
function deleteDir($dir) // void deleteDir(String $dir) { if($actDirs = glob($dir."/*")) { foreach($actDirs as $actDir) { if(is_dir($actDir)) { deleteDir($actDir); } else { unlink($actDir); } } } rmdir($dir); return; }
deleteDir("Beispielsordner");
?>
|
Die Mail Funktion
Mails kann man automatisch versenden. Voraussetzung ist, dass der
Webserver Mailversendung unterstützt.
Tutorial_Kapitel9_Beispiel_6.php:
<?php
$to = "dump@lukydeluxe.org"; $subject = "Hi! We sell discretly V!agra!!"; $message = "Buy Viagr@ NOW!\nFor $ 3, 35 !";
mail($to, $subject, $message);
?>
|
Natürlich will ich mit diesem Beispiel niemanden zu Spam motivieren. =)
Du kannst mit mail()
sogar den Absender "verfälschen".
Darauf möchte ich hier allerdings nicht weiter eingehen. Schaue Dir dazu die
mail() Funktion
genauer an.
Dass "\n" ein Zeilenbruch ist, wurde schon im Kapitel "Dateien" erklärt.
Überprüfung von Variablen
Wenn Du Variablen auf einen Typ überprüfen möchtest, kannst du dies mit den
Funktionen auf http://at.php.net/manual/de/ref.var.php
machen:
Tutorial_Kapitel9_Beispiel_7.php:
<?php
$einezahl = 5; $einstring = "Hallo";
if(is_numeric($einezahl) && is_string($einstring)) { echo "Juhu!!"; }
?>
|
Fragen zu diesem Kapitel:
1. Was macht der Switch Ausdruck?
2. Welche drei Funktionen benutzt man um durch Verzeichnisse in einer While
Schleife zu "loopen"?
3. Kann man rename() auf Dateien und auf
Ordner anwenden?
4. Welche Funktionen benutzt man um Dateien und Ordner zu löschen?
Antworten in Kapitel 10
Alle Beispiele von Kapitel 9
|
|
|