Kurzübersicht zu wichtigen PHP-Funktionalitäten
Aus Tipps, Tricks und Anleitungen
| Welche Basistricks gibt es bei der Verwendung von PHP? | ||
Dieser Artikel dient im Wesentlichen als Ergänzung zu dem einleitenden Artikel zur Verwendung von PHP auf eigenen Webseiten. Er zeigt in kurzen Code-Beispielen typische Mittel der Programmiersprache PHP.
VariablenPHP Variablen werden durch ein vorangestelltes „$“ gekennzeichnet. Der Zuweisungsoperator ist das "=" - Zeichen: $var = 42; $var = 'abc'; Wie man im obigen Beispiel sieht, müssen Variablen nicht deklariert werden, sondern stehen direkt zur Verfügung. Nicht gesetzte Variablen haben dabei den Wert NULL. Es gibt auch nur eine sehr lockere Typkontrolle und der Inhaltetyp darf sich jederzeit ändern. Um selber einen Variablentyp zu erfragen oder zu erzwingen, stehen unter anderem folgende Operatoren und Funktionen zur Verfügung:
Zum Rechnen stehen folgende Basisoperatoren zur Verfügung:
Abkürzungen:
Tipps
Beispiel: $var1 = 123; $var2 = "123 Jump Street" Wegen der fehlenden Typkontrolle ergibt $var1 + $var2: 246
Wenn man der Variable $user den Wert "admin" zuweist durch $user="admin" (die Zuweisung $user='admin' hätte genau dasselbe Ergebnis) kann man die unterschiedliche Wirkungsweise der Anführungszeichen mittel des echo-Befehls sichtbar machen: echo '$suser'; (liefert: $user (den Text)) echo "$user"; (liefert: admin (den Inhalt))
VergleicheVergleiche erfolgen mit Hilfe der if ()-Anweisung, wobei der Vergleichsausdruck in Klammern steht. Sollen aufgrund eines Vergleichs mehrere Befehle ausgeführt werden, müssen diese als Code-Block in geschweiften Klammern zusammengefasst werden. Optional lassen sich mit „elseif()“ oder „else“ weitere Ergebnisfälle hinzufügen. if ($a > $b) $a=0; if ($a > $b)
{
$a=0;
echo 'habe $a gleich 0 gesetzt';
}
elseif( ....)
{
....
}
elseif( ....)
{
....
}
else
{
...
}
Typische Vergleichsoperatoren
Tipps
FunktionenPHP liefert eine große Anzahl vorgefertigter Funktionen. Diese werden aufgerufen durch den Funktionsnamen gefolgt von zwei runden Klammern. Falls Parameter an die Funktion übergeben werden sollen, werden die Parameter durch Komma getrennt zwischen die Klammern geschrieben. Fall die Funktion einen Rückgabewert liefert, ist der Funktionsaufruf zugleich auch der Rückgabewert. Das heisst $var1 = max(3,4,7); weist der Variable $var1 gleich auch den Wert 7 zu. Es gibt eine große Anzahl solcher vorgefertigter Funktionen. Im folden sollen einige sehr häufig benutzte genannt wredn. Mathematische Funktionen:
Stringfunktionen:
TippsEinige String-Befehle aus anderen Programmiersprachen existieren nicht in PHP, können aber wie folgt leicht nachgebaut werden:
VariablenübergabeDer Programmablauf bei der Webseitenprogrammierung hat einen wesentlichen Nachteil gegenüber den meisten anderen Programmen. Jede Webseite ist ein eigenes Programm und mit der Darstellung der Webseite ist das Programm abgeschlossen. Führt der Nutzer etwa über einen Link oder ein Formular eine Aktion durch, so wird eine neue Webseite aufgerufen und ein komplett neues Programm aufgerufen (selbst wenn die gleiche Webseite erneut aufgerufen wird), dem alle Variablenwerte des Vorgängerprogramms unbekannt sind. Immerhin kann die alte Seite der neuen Seite beim Aufruf Informationen in Form von Variablenwerten mitgeben. Dies kann über die URL der neuen Seite geschehen („get“) oder implizit („post“). Die neue Seite kann diese Werte auslesen und benutzen:
Die Post-Übergabe hat den Vorteil, für den Anwender unsichtbar zu funktionieren, steht aber nur bei der Verwendung von <form>-Elementen zur Verfügung. Die Get-Übergabe kann bei <form>-Elementen und bei Links benutzt werden. Sie bedeutet allerdings einen Zusatz in der URL und ist für den Anwender sichtbar. Zudem ist diese Übertragungsmethode von der Anzahl der übertragbaren Zeichen begrenzt. Die Get-Übergabe hängt an die Ziel URL ein „?“ als Signalzeichen und dann die Variable mit Namen und Wert an. Weitere Namen-Wert-Paare können mit dem „&“-Zeichen angehängt werden, wobei das WWW-Konsortium (w3.org) empfiehlt „&“ statt „&“ zu verwenden. Beispiel: Aufruf: http://www.example.org?wert1=7&wert2=hallo&wert3=abc Die Werte wert1,wert2,wert3 können dann in der Zieldatei ausgelesen werden. $monat = $_REQUEST['wert1']; $text = $_REQUEST['wert2']; $user = $_REQUEST['wert3']; Diese Schreibweise kann also problemlos in Links innerhalb des eigenen Programms eingebaut werden, die dann Werte übermitteln. Allerdings übernimmt PHP in der Standardeinstellung automatisch auch die Werte $wert1, $wert2, $wert. Der Nutzer dann theoretisch beliebige Variablen setzen, indem er sie einfach an die URL übergibt. Alle erhaltenen und verwendeten Werte müssen daher auf Sinnhaftigkeit und Statthaftigkeit überprüft werden, um eventuelle Sicherheitsprobleme zu vermeiden. Zudem sollte man niemals Variablen verwenden, die man nicht selbst initialisiert hat. Beispiel: $pass = $_REQUEST['pass'];
if ($pass == 'admin123geheim')
$user = 'admin';
if ($user == 'admin')
include ('zeige_geheimnis.php);
Selbst wenn auch $admin im ersten Beispiel korrekt initialisiert wäre (etwa indem in der ersten Zeile steht: $user=;, könnte der Besucher noch über die Datei „zeige_geheimnis.php“ ans Ziel kommen, falls $admin dort nicht ebenfalls initialisiert wird: (in „zeige_geheimnis.php“) if ($user == 'admin') echo 'geheime information'; (Ein böser Nutzer kann mit Aufruf von „http://www.example.org/zeige_geheimnis?user=admin“ ans Ziel kommen.) Tipps
preg_match("!^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$!",$email,$flag);
if ($flag[0] == '')
$error_text .= "Die email-Adresse ist fehlerhaft.<br>";
KommentareKommentare dienen zur Erläuterung innerhalb des Programmcodes und werden nicht angezeigt oder ausgeführt. Während der Entwicklung kann man zudem Programmteile auskommentieren, um sie testweise und vorübergehend aus dem Programm zu entfernen, etwa zur Eingrenzung eines Fehlers. // Ich bin ein Kommentar (nur diese Zeile) # Ich bin auch ein Kommentar (nur diese Zeile) (Kurzform von „//“) /* Alles was hier steht ist auch Kommentar... */
ArraysPHP besitzt im Gegensatz zu anderen Programmiersprachen sehr starke und komfortable Möglichkeiten der Zuweisung und des Zugriffs auf Arrays. Insbesondere können als Indizes beliebige Werte (Zahlen und Texte) verwendet werden. Das Array als Ganzes wird wie eine Variable mit einem vorangestellten „$“-Zeichen gekennzeichnet. Auf die einzelnen Arrayelemente greift man mit den entsprechen Indizes zu, die in eckigen Klammern angegeben werden. Auch bei Arrays "existieren" wie bei Variablen nicht zugewiesene Elemente. Das Array-Objekt umfasst jedoch nur die explizit zugewiesenen (z.B: bei count(), array_keys() oder vardump() - siehe unten). Numerische Indizes können beliebig zugewiesen werden und müssen dabei nicht notwendig fortlaufend vergeben werden. Im folgenden sind einige Zuweisungsmethoden aufgeführt: $datensatz[0] = 'Montag'; $datensatz[1] = 'Dienstag'; $datensatz[3] = 'Donnerstag'; oder $datensatz[] = 'Montag'; $datensatz[] = 'Dienstag'; $datensatz[] = ''; $datensatz[] = 'Donnerstag'; oder $datensatz = Array ('Montag', 'Dienstag', '', 'Donnerstag');
Anmerkung: Das erste Beispiel unterscheidet sich leicht von den beiden folgenden, da dort das Element mit dem Index [2] gleich NULL ist, in den anderen Beispielen hat das Element mit Index [2] den Wert "". Hinweis:
$var = „hallo“ if ($var[1] != '') echo 'Ich bin ein Array' #eigentlich nicht else echo 'Ich bin ein String' echo '<br>Mein Wert ist: '.$var[1];
$datensatz['monday'] = 'Montag'; $datensatz['tuesday'] = 'Dienstag'; $datensatz['thursday'] = 'Donnerstag'; oder $datensatz = Array ('monday' => 'Montag', 'tuesday' => 'Dienstag', 'thursday' => 'Donnerstag');
Mehrdimensionale ArraysEbenso können mehrdimensionale Array verwendet werden, wobei für die einzelnen Dimensionen numerische und nicht numerische Indizes gemischt werden können $datensatz['tage'][2009]['Q3'] = 'Donnerstag'; $umsatz['Hamburg'][2009]['Q4']['Kugelschreiber'] = 1253.75;
Wichtige Array-Funktionen
SchleifenIn Schleifen werden sich wiederholende gleiche oder zumindest ähnliche Anweisungen zusammengefasst. Die Anzahl der Durchgänge kann dabei variabel zur Laufzeit festgelegt werden. Dazu wird eine Abbruchbedingung festgelegt. Eine Schleife kann auch vorzeitig durch die „break;“-Anweisung beendet werden. Es gibt mehrere Schleifenvarianten, die bei den allermeisten Fällen das gleiche leisten. Üblicherweise wird die „for()“-Schleife verwendet. Bei Schleifen, die keinen Zähler benötigen, sondern nur eine Abbruchbedingung erfragen, wird oft auch eine „while()“-Schleife verwendet. For()-SchleifeAm einfachsten verwendet man eine „for()“-Schleife, die eine bestimmte Anzahl von Schleifendurchgängen erledigt, bis eine Abbruchbedingung verletzt ist. Die „for()“-Schleife besteht aus drei Parametern die mit Semikolon abgetrennt werden. Einzelne Parameter können prinzipiell leer gelassen werden, was aber nur selten Sinn ergibt. Der erste Parameter gibt an, was einmalig zu Beginn der Schleife getan werden soll. Der zweite enthält die Abbruchbedingung; die Schleife wird solange ausgeführt, wie diese „true“ ist. Die Anweisung des dritten Parameters wird jedesmal als letzte Anweisung ausgeführt, bevor die Schleife in eine neue Runde geht. for ($a=0; $a<count($arr1); $a++)
{
echo $arr1[$a];
}
While()-Schleife„While()“-Schleifen betrachten dagegen nur eine Abbruchbedingung, welche in den runden Klammern angegeben ist. Bei einer normalen While()-Schleife wird die Abbruchbedingung zu Beginn getestet. $a=0;
while ($a<count($arr1))
{
echo $arr1[$a];
$a++;
}
In dieser Variante wird die Schleife immer zumindest einmal durchlaufen und erst am Ende die Abbruchbedingung getestet: $a=0;
do
{
echo $arr1[$a];
$a++;
}
while ($arr1[$a] != 'Testwert');
Tipps
for ($a=0;$a<10;$a++) $a=7;
for ($a=0;$a<10;$a++); echo 'hallo';
DatumsfunktionenEs gibt einige Datumsfunktionen, wobei häufig der Befehl time() als Grundlage genommen wird. Dieser liefert die Systemzeit des Servers und zwar in Sekunden seit dem 1.1.1970 00:00.
Da Zeitstempel Integerwerte annehmen, kann mit ihnen genauso gerechnet werden. Hinweis:
ServervariablenÜber PHP hat man Zugriff auf einige Informationen des Webservers. In der Praxis kann man auf diese Informationen zugreifen, wie auf Variablen. Einige Informationen wie zum Beispiel der Name des Webservers oder sein Rootverzeichnis sind dabei Informationen des Servers selbst:
Andere Informationen sind Informationen, die der Webserver vom Client erhalten hat. Also Informationen, die der Browser des Besuchers an den Server weitergeleitet hat. Diese Informationen müssen daher nicht notwendig stimmen oder vollständig sein. In der Praxis kann man sich aber recht gut auf diese Informationen vom Client verlassen:
Es gibt noch weitere Webserverinformationen, die man abfragen kann, doch die oben genannten sind in den meisten Anwendungen die spannendsten. Sie bieten zahlreiche Möglichkeiten wie zum Beispiel auch den Aufbau einer Browserweiche, bei dem das Seitenlayout entsprechend dem benutztem Browser des Bescuhers angepasst werden kann: if (stristr($_SERVER[HTTP_USER_AGENT],'MSIE') != ) echo 'Hier kommt Seitenaufbau für Internetexplorer'; else echo 'Hier kommt Seitenaufbau für die anederen Browser'; MySQLPHP wird in den meisten Fällen mit MySQL als Datenbank verwendet, aber auch andere Datenbanken können auf Wunsch angesprochen werden. Dafür gibt es spezielle Funktionen, die den Zugriff auf die Datenbank regeln. Hier sollen nur exemplarisch die wichtigsten Befehle genannt werden:
Tipps:
DateizugriffeIn diesem Fall soll ein Beispiel selbsterklärend präsentiert werden. Das Beispiel legt einen Ordner an und liest und schreibt in Dateien. Zudem werdenb einige Prüffunktionen gezeigt, die den Status und die Art von Dateien prüfen <? $verzeichnis = 'daten'; $dateiname = 'test.txt'; mkdir($verzeichnis); $text = "hallo1\r\nhallo2\r\nhallo3\r\n"; $text .= 'hallo1\r\nhallo2\r\nhallo3\r\n'; echo 'Directory-Name: '.dirname($dateiname).'
Verwandte Artikel | ||
| Dieser Artikel gehört zu folgenden Kategorien: "Computer" |
| Neuen Artikel erstellen | Diesen Artikel bearbeiten | Rückmeldung geben |