Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Thomas Theis
Einstieg in PHP 5.5 und MySQL 5.6
2489-5.book Seite 1 Montag, 8. April 2013 1:47 13
Auf einen Blick
Auf einen Blick
1 Einführung ............................................................................................................... 17
2 PHP-Programmierkurs ......................................................................................... 21
3 Daten senden und auswerten ........................................................................... 117
4 Datenbanken mit MySQL .................................................................................... 177
5 Objektorientierung in PHP ................................................................................. 243
6 Fehler behandeln, Sicherheit erhöhen ........................................................... 299
7 Zeichenketten ......................................................................................................... 309
8 Dateien und Verzeichnisse ................................................................................. 327
9 Felder ......................................................................................................................... 351
10 Datum und Zeit ...................................................................................................... 375
11 Mathematische Funktionen .............................................................................. 399
12 Sessions und Cookies ........................................................................................... 417
13 Datenbanken mit SQLite3 und PDO ................................................................ 447
14 XML ............................................................................................................................. 463
15 Ajax ............................................................................................................................. 475
16 Grafiken programmieren .................................................................................... 493
17 PDF-Dateien erstellen .......................................................................................... 519
18 Automatisierter E-Mail-Versand ...................................................................... 541
19 Beispielprojekte ..................................................................................................... 547
2489-5.book Seite 3 Montag, 8. April 2013 1:47 13
Inhalt
5
Inhalt
1 Einführung 17
1.1 Zu diesem Buch ......................................................................................................... 17
1.2 PHP – eine Beschreibung ......................................................................................... 18
1.3 PHP – Vorzüge ........................................................................................................... 18
1.4 Aufbau dieses Buchs ................................................................................................ 19
1.5 Systemvoraussetzungen ......................................................................................... 20
2 PHP-Programmierkurs 21
2.1 Einbettung von PHP in HTML ................................................................................. 21
2.2 Kommentare .............................................................................................................. 23
2.3 Variablen, Datentypen und Operatoren .............................................................. 25
2.3.1 Namen ........................................................................................................ 25
2.3.2 Variablen für Zahlen ................................................................................. 26
2.3.3 Rechenoperatoren für Zahlen .................................................................. 27
2.3.4 Variablen und Operatoren für Zeichenketten ....................................... 30
2.4 Einfache Formularauswertungen .......................................................................... 32
2.4.1 Eingabeformular ....................................................................................... 33
2.4.2 Auswertung mit $_POST .......................................................................... 35
2.4.3 Umwandlung von Zeichenketten in Zahlen .......................................... 36
2.5 Verzweigungen ......................................................................................................... 40
2.5.1 if-Anweisung ............................................................................................. 41
2.5.2 if/else-Anweisung ..................................................................................... 42
2.5.3 Logische Operatoren ................................................................................. 46
2.5.4 Rangordnung der Operatoren ................................................................. 48
2.5.5 Mehrfache Verzweigung .......................................................................... 49
2.5.6 switch/case-Anweisung ........................................................................... 51
2.5.7 HTML in Verzweigungsblöcken ............................................................... 53
2489-5.book Seite 5 Montag, 8. April 2013 1:47 13
Inhalt
6
2.6 Schleifen ..................................................................................................................... 54
2.6.1 for-Schleife ................................................................................................. 55
2.6.2 Beispiele für for-Schleifen ........................................................................ 56
2.6.3 Geschachtelte for-Schleifen .................................................................... 58
2.6.4 Schleifen und Tabellen ............................................................................. 59
2.6.5 while-Schleife ............................................................................................ 62
2.6.6 do while-Schleife ....................................................................................... 64
2.6.7 Schleifenabbruch mit break ..................................................................... 65
2.6.8 Schleifenfortsetzung mit continue ......................................................... 67
2.7 Felder ........................................................................................................................... 67
2.7.1 Numerisch indizierte Felder ..................................................................... 68
2.7.2 Assoziative Felder ...................................................................................... 70
2.8 Funktionen ................................................................................................................. 75
2.8.1 Ein erstes Beispiel ...................................................................................... 75
2.8.2 Definition, Aufruf und Funktionstypen .................................................. 77
2.8.3 Externe Dateien ......................................................................................... 78
2.8.4 Funktionen mit einem Parameter ........................................................... 78
2.8.5 Funktionen mit mehreren Parametern .................................................. 81
2.8.6 Rückgabewert einer Funktion .................................................................. 84
2.8.7 Kopie und Referenz ................................................................................... 86
2.8.8 Gültigkeitsbereich von Variablen ............................................................ 90
2.8.9 Variable Parameterlisten ......................................................................... 93
2.8.10 include-Anweisung ................................................................................... 95
2.9 Behandlung von Fehlern ......................................................................................... 98
2.9.1 Ohne Ausnahmebehandlung .................................................................. 98
2.9.2 Mit Ausnahmebehandlung ...................................................................... 100
2.10 Beispiele ...................................................................................................................... 103
2.10.1 Formatierung von Zahlen ........................................................................ 103
2.10.2 Geldanlage ................................................................................................. 105
2.10.3 Steuertabelle ............................................................................................. 108
2.10.4 Bestimmung des Ostersonntags ............................................................. 111
3 Daten senden und auswerten 117
3.1 Textelemente ............................................................................................................ 117
3.1.1 Einzeilige Texteingabefelder ................................................................... 118
2489-5.book Seite 6 Montag, 8. April 2013 1:47 13
Inhalt
7
3.1.2 Mehrzeilige Texteingabefelder ............................................................... 120
3.1.3 Passworteingabefeld, verstecktes Element ........................................... 122
3.2 Auswahlelemente ..................................................................................................... 125
3.2.1 Radiobutton-Gruppe ................................................................................ 126
3.2.2 Einfaches Auswahlmenü .......................................................................... 129
3.2.3 Kontrollkästchen ....................................................................................... 130
3.2.4 Mehrfaches Auswahlmenü ...................................................................... 132
3.3 Aktionselemente ...................................................................................................... 135
3.3.1 Absenden und Zurücksetzen ................................................................... 135
3.3.2 Allgemeine Buttons .................................................................................. 139
3.4 Weitere Möglichkeiten ............................................................................................ 143
3.4.1 Auswertung in anderem Frame .............................................................. 143
3.4.2 Felder von Formularelementen ............................................................... 145
3.4.3 Formular und Programm in einer Datei ................................................. 149
3.4.4 Submit über Hyperlink, CSS ..................................................................... 151
3.4.5 Daten an Formularziel anhängen ........................................................... 153
3.4.6 Daten an Hyperlink-Ziel anhängen ......................................................... 156
3.4.7 Dateien auf den Server hochladen .......................................................... 159
3.5 Beispiele ...................................................................................................................... 162
3.5.1 Grundrechenarten .................................................................................... 163
3.5.2 Pizzabestellung ......................................................................................... 166
3.5.3 Kopfrechnen .............................................................................................. 169
3.6 PHP-Programme publizieren .................................................................................. 175
4 Datenbanken mit MySQL 177
4.1 MySQL und phpMyAdmin ....................................................................................... 178
4.1.1 phpMyAdmin ............................................................................................. 179
4.1.2 Beispieldatenbank und -tabelle .............................................................. 180
4.1.3 Datenbank erzeugen ................................................................................ 180
4.1.4 Tabelle erzeugen ....................................................................................... 181
4.1.5 Primärschlüssel erzeugen ........................................................................ 182
4.1.6 Datensätze eintragen ............................................................................... 182
4.2 PHP und MySQL ......................................................................................................... 184
4.2.1 Verbindung aufnehmen, Datensätze anzeigen .................................... 184
2489-5.book Seite 7 Montag, 8. April 2013 1:47 13
Inhalt
8
4.2.2 Datensätze auswählen ............................................................................. 188
4.2.3 Ausgabe in eine HTML-Tabelle ................................................................ 193
4.2.4 Auswahl von Daten über ein Suchformular ........................................... 195
4.2.5 Datensätze erzeugen ................................................................................ 204
4.2.6 Ändern mehrerer Datensätze .................................................................. 208
4.2.7 Ändern eines bestimmten Datensatzes ................................................. 210
4.2.8 Datensätze löschen .................................................................................. 215
4.2.9 Benutzeroberfläche mit JavaScript und CSS .......................................... 218
4.2.10 Ein Datenbankbrowser ............................................................................. 226
4.3 MySQL-Datenbanken publizieren ......................................................................... 234
4.3.1 Verbindung aufnehmen ........................................................................... 235
4.3.2 Export einer Tabelle .................................................................................. 237
4.3.3 Tabelle und Daten per Programm erzeugen .......................................... 240
5 Objektorientierung in PHP 243
5.1 Was ist objektorientierte Programmierung? ...................................................... 243
5.2 Klassen und Objekte ................................................................................................ 244
5.2.1 private, protected und public .................................................................. 246
5.2.2 Anwendung der Klasse ............................................................................. 246
5.3 Konstruktor ................................................................................................................ 248
5.4 Destruktor .................................................................................................................. 251
5.5 Optionale Parameter ............................................................................................... 253
5.6 Handles und Kopien ................................................................................................. 255
5.6.1 Vordefiniertes Klonen ............................................................................... 256
5.6.2 Benutzerdefiniertes Klonen ..................................................................... 259
5.6.3 Übergabe eines Objekts an eine Funktion ............................................. 260
5.7 Vererbung ................................................................................................................... 261
5.7.1 Grundlagen ................................................................................................ 261
5.7.2 Konstruktoren bei Vererbung .................................................................. 265
5.8 Dereferenzierung von Objekten ............................................................................ 266
5.9 Konstanten, statische Eigenschaften und Methoden ....................................... 268
5.10 Abstrakte Klassen und Methoden ......................................................................... 271
5.11 Magische Konstanten .............................................................................................. 273
2489-5.book Seite 8 Montag, 8. April 2013 1:47 13
Inhalt
9
5.12 Operator »instanceof« ............................................................................................. 274
5.13 Hilfsfunktionen ......................................................................................................... 275
5.14 Ausgabemethode »__toString()« .......................................................................... 277
5.15 Serialisierung ............................................................................................................. 279
5.16 Funktion »__autoload()« ........................................................................................ 281
5.17 Beispiel »Scheck« ...................................................................................................... 283
5.18 Beispiel »Kopfrechnen« ........................................................................................... 288
5.18.1 Programmablauf ....................................................................................... 288
5.18.2 Klasse »Spiel« ............................................................................................ 292
5.18.3 Klasse »Aufgabe« ...................................................................................... 295
6 Fehler behandeln, Sicherheit erhöhen 299
6.1 Anzeige von Fehlern ................................................................................................. 299
6.2 Dauerhafte Konfiguration der Anzeige von Fehlern ......................................... 301
6.3 Temporäre Konfiguration der Anzeige von Fehlern .......................................... 304
6.4 Angriffe und Sicherheit ........................................................................................... 305
6.4.1 Programmpakete ...................................................................................... 305
6.4.2 Sichtbare Daten ......................................................................................... 306
6.4.3 Sessions ...................................................................................................... 306
6.4.4 Variablen .................................................................................................... 307
6.4.5 Eingaben prüfen ........................................................................................ 307
6.4.6 Passwörter ................................................................................................. 308
7 Zeichenketten 309
7.1 Länge und Umwandlungsfunktionen .................................................................. 309
7.2 Zeichenketten und Felder ....................................................................................... 312
7.3 Teilzeichenketten ..................................................................................................... 314
7.4 Suchen nach Position ............................................................................................... 317
7.5 Vergleich von Zeichenketten ................................................................................. 319
7.6 Codierung von Zeichen ............................................................................................ 321
2489-5.book Seite 9 Montag, 8. April 2013 1:47 13
Inhalt
10
7.7 Einfache Verschlüsselung ........................................................................................ 322
7.8 Weitere Verschlüsselungsmethoden .................................................................... 325
8 Dateien und Verzeichnisse 327
8.1 Dateitypen .................................................................................................................. 327
8.2 Lesen einer Zeile aus einer sequenziellen Datei ................................................. 328
8.3 Lesen aller Zeilen einer sequenziellen Datei ....................................................... 330
8.4 Vereinfachtes Lesen einer Datei ............................................................................ 333
8.5 Überschreiben einer sequenziellen Datei ............................................................ 333
8.6 Anhängen an eine sequenzielle Datei .................................................................. 335
8.7 Ein einfacher Zugriffszähler ................................................................................... 339
8.8 Wahlfreier Zugriff ..................................................................................................... 341
8.9 Informationen über Dateien .................................................................................. 344
8.10 Informationen über ein einzelnes Verzeichnis ................................................... 346
8.11 Informationen über den Verzeichnisbaum ......................................................... 349
9 Felder 351
9.1 Operationen für numerisch indizierte Felder ..................................................... 351
9.1.1 Sortierung .................................................................................................. 351
9.1.2 Wert und Position der Extrema ............................................................... 353
9.1.3 Statistische Auswertung .......................................................................... 354
9.1.4 Feld verändern ........................................................................................... 359
9.2 Sortierung eines assoziativen Feldes .................................................................... 361
9.3 Zweidimensionale Felder, allgemein ................................................................... 363
9.4 Zweidimensionale numerische Felder ................................................................. 363
9.5 Zweidimensionale gemischte Felder .................................................................... 367
9.6 Zweidimensionale assoziative Felder ................................................................... 370
9.7 list-Anweisung .......................................................................................................... 372
2489-5.book Seite 10 Montag, 8. April 2013 1:47 13
Inhalt
11
10 Datum und Zeit 375
10.1 Zeit ermitteln und ausgeben .................................................................................. 375
10.2 Zeit formatiert ausgeben ........................................................................................ 377
10.3 Zeitangabe auf Gültigkeit prüfen ......................................................................... 380
10.4 Absolute Zeitangabe erzeugen .............................................................................. 381
10.5 Relative Zeitangabe erzeugen ............................................................................... 382
10.6 Mit Zeitangaben rechnen ........................................................................................ 384
10.7 Zeitangaben in Datenbanken ................................................................................ 387
10.8 Beispiel »Feiertagsberechnung« ........................................................................... 389
10.9 Kopfrechnen mit Zeitmessung .............................................................................. 393
11 Mathematische Funktionen 399
11.1 Taschenrechnerfunktionen .................................................................................... 399
11.2 Mathematische Konstanten ................................................................................... 400
11.3 Ganzzahlermittlung ................................................................................................. 402
11.4 Extremwerte .............................................................................................................. 403
11.5 Winkelfunktionen .................................................................................................... 404
11.6 Prüffunktionen für Zahlen ...................................................................................... 405
11.7 Zufallszahlen ............................................................................................................. 408
11.8 Mischen ....................................................................................................................... 411
11.8.1 Mischen mit eigenem Algorithmus ........................................................ 411
11.8.2 Mischen mit shuffle() ............................................................................... 413
11.9 Stellenwertsysteme ................................................................................................. 414
12 Sessions und Cookies 417
12.1 Session-Management .............................................................................................. 418
12.2 Beispiel für Sessions: Zugriffszähler ..................................................................... 418
2489-5.book Seite 11 Montag, 8. April 2013 1:47 13
Inhalt
12
12.3 Beispiel für Sessions: geschützte Website .......................................................... 420
12.3.1 Ablauf ......................................................................................................... 420
12.3.2 Login-Seite ................................................................................................. 422
12.3.3 Intro-Seite .................................................................................................. 423
12.4 Beispiel für Sessions: Webshop ............................................................................. 426
12.4.1 Ablauf ......................................................................................................... 426
12.4.2 Startseite .................................................................................................... 429
12.4.3 Include-Datei ............................................................................................. 430
12.4.4 Tabelle der Artikel ..................................................................................... 431
12.4.5 Warenkorb ................................................................................................. 434
12.4.6 Kasse ........................................................................................................... 437
12.5 Cookies ........................................................................................................................ 438
12.6 Beispiel für Cookies: Besuch ................................................................................... 440
12.7 Beispiel für Cookies: Adressspeicherung ............................................................. 442
13 Datenbanken mit SQLite3 und PDO 447
13.1 SQLite3 ........................................................................................................................ 448
13.2 Datenbankdatei, Tabelle und Datensätze erzeugen ......................................... 448
13.3 Abfrage der Datensätze ........................................................................................... 450
13.4 Benutzeroberfläche mit JavaScript und CSS ....................................................... 452
13.5 Beispiel »Kopfrechnen« ........................................................................................... 457
13.6 PDO .............................................................................................................................. 459
14 XML 463
14.1 Einlesen eines einzelnen Objekts .......................................................................... 463
14.2 Einlesen mehrerer Objekte ..................................................................................... 466
14.3 Zugriff auf Attribute ................................................................................................ 469
14.4 Interne XML-Daten ................................................................................................... 471
14.5 Speicherung von Objekten ..................................................................................... 473
2489-5.book Seite 12 Montag, 8. April 2013 1:47 13
Inhalt
13
15 Ajax 475
15.1 Hallo Ajax ................................................................................................................... 475
15.2 Parameter senden ..................................................................................................... 478
15.3 Bild tauschen ............................................................................................................. 480
15.4 Mehrere Ergebnisse aus XML-Knoten .................................................................. 482
15.5 Mehrere Ergebnisse aus XML-Attributen ............................................................ 485
15.6 Zugriff auf MySQL-Datenbank ............................................................................... 486
15.7 Weitere Ereignisse .................................................................................................... 489
16 Grafiken programmieren 493
16.1 Installation testen .................................................................................................... 493
16.2 Grafik speichern ........................................................................................................ 495
16.3 Grafik unmittelbar anzeigen .................................................................................. 496
16.4 Text mit internen Fonts ........................................................................................... 498
16.5 Text mit TrueType-Fonts ......................................................................................... 499
16.6 Bild aus einer Datei laden ....................................................................................... 501
16.7 Bilder aus Dateien ineinander einbetten ............................................................. 503
16.8 Ellipsen und Bögen ................................................................................................... 504
16.9 Rechtecke und Polygone ......................................................................................... 506
16.10 Linien und Pixel ......................................................................................................... 507
16.11 Füllen mit Farbe ........................................................................................................ 509
16.12 Darstellung eines Aktienkurses ............................................................................. 511
16.13 Erstellung eines CAPTCHAS .................................................................................... 514
17 PDF-Dateien erstellen 519
17.1 Installation ................................................................................................................. 519
17.2 PDF-Dokument erzeugen ........................................................................................ 520
2489-5.book Seite 13 Montag, 8. April 2013 1:47 13
Inhalt
14
17.3 Text in Zelle ................................................................................................................ 522
17.4 Fließtext, Schriftparameter .................................................................................... 524
17.5 Tabelle ......................................................................................................................... 526
17.6 Kopf- und Fußzeile ................................................................................................... 529
17.7 Bild aus Datei laden .................................................................................................. 532
17.8 Hyperlinks .................................................................................................................. 533
17.9 Linie, Rechteck, Position .......................................................................................... 537
18 Automatisierter E-Mail-Versand 541
18.1 Eine erste E-Mail ........................................................................................................ 541
18.2 Eine E-Mail mit Header ............................................................................................ 542
18.3 Ein E-Mail-Formular .................................................................................................. 542
18.4 E-Mails mit PHPMailer ............................................................................................. 544
19 Beispielprojekte 547
19.1 Projekt »Chat« ........................................................................................................... 547
19.1.1 Frame-Aufbau ........................................................................................... 547
19.1.2 CSS-Formatierung ..................................................................................... 549
19.1.3 Ausgabe, Version »Textdatei« ................................................................. 549
19.1.4 Darstellung der Textdatei ........................................................................ 550
19.1.5 Ausgabe, Version »Datenbank« .............................................................. 551
19.1.6 Darstellung der Datenbanktabellen ....................................................... 552
19.1.7 Eingabe, Head ............................................................................................ 553
19.1.8 Eingabe, PHP zum Speichern, Version »Textdatei« ............................... 555
19.1.9 Eingabe, PHP zum Speichern, Version »Datenbank« ............................ 556
19.1.10 Eingabe, Formular ..................................................................................... 557
19.1.11 Mögliche Erweiterungen .......................................................................... 558
19.2 Projekt »Blog« ........................................................................................................... 559
19.2.1 Aufbau der Datenbank ............................................................................. 560
19.2.2 Blog für den Betrachter, Programmcode ................................................ 562
19.2.3 Blog für den Betreiber, Programmcode .................................................. 563
2489-5.book Seite 14 Montag, 8. April 2013 1:47 13
Inhalt
15
19.3 Projekt »Forum« ....................................................................................................... 568
19.3.1 Darstellung, Anmeldung .......................................................................... 569
19.3.2 Darstellung, Hauptbildschirm ................................................................. 569
19.3.3 Darstellung, neuer Beitrag ....................................................................... 571
19.3.4 Datenbank, Tabelle der Teilnehmer ........................................................ 572
19.3.5 Datenbank, Tabelle der Beiträge ............................................................. 573
19.3.6 Passwortvergabe ....................................................................................... 573
19.3.7 Forum, CSS ................................................................................................. 576
19.3.8 Forum, JavaScript-Funktion ..................................................................... 577
19.3.9 Forum, Anmeldung ................................................................................... 579
19.3.10 Forum, Zugangsprüfung und Überschrift .............................................. 580
19.3.11 Forum, neuen Beitrag speichern ............................................................. 582
19.3.12 Forum, Filterung auswählen .................................................................... 582
19.3.13 Forum, Sortierung durchführen .............................................................. 584
19.3.14 Forum, Filterung durchführen ................................................................. 585
19.3.15 Forum, Sortierung auswählen ................................................................. 587
19.3.16 Forum, Beiträge darstellen ....................................................................... 588
19.3.17 Forum, neuen Beitrag eingeben .............................................................. 588
A HTML für PHP 591
A.1 Die erste Seite ............................................................................................................ 592
A.2 Formulare ................................................................................................................... 593
A.3 Tabellen ...................................................................................................................... 596
A.4 Hyperlinks .................................................................................................................. 597
B Installationen 599
B.1 Installationen unter Windows ............................................................................... 599
B.1.1 Installation des Pakets XAMPP ................................................................ 599
B.1.2 Installation des Pakets EasyPHP .............................................................. 601
B.1.3 phpinfo ....................................................................................................... 602
B.1.4 FTP-Client FileZilla ..................................................................................... 602
2489-5.book Seite 15 Montag, 8. April 2013 1:47 13
Inhalt
16
B.2 Installationen unter Ubuntu Linux ....................................................................... 604
B.2.1 Editor .......................................................................................................... 604
B.2.2 Apache-Webserver .................................................................................... 604
B.2.3 PHP .............................................................................................................. 605
B.2.4 MySQL ......................................................................................................... 605
B.2.5 phpMyAdmin ............................................................................................. 606
B.2.6 XAMPP ........................................................................................................ 606
B.2.7 Probleme bei XAMPP ................................................................................ 607
B.3 Installation für Mac OS X ........................................................................................ 607
C Der Autor 609
Index .......................................................................................................................................... 611
2489-5.book Seite 16 Montag, 8. April 2013 1:47 13
17
1Kapitel 1
Einführung
In diesem Kapitel erfahren Sie, warum PHP eine gute Wahl ist. Ich stelle
Ihnen die Vorzüge von PHP vor und beschreibe den Aufbau des Buchs.
Damit der Einstieg leicht fällt …
1.1 Zu diesem Buch
PHP ist eine weitverbreitete Sprache zur Entwicklung dynamischer Inter-
netanwendungen, deren Nutzung seit ihrer ersten Einführung stetig
ansteigt. PHP wird inzwischen auf Millionen Websites weltweit eingesetzt.
BestsellerDieses Buch erscheint aktuell zu PHP 5.5 und MySQL 5.6. Es ist, wie schon seine
Vorgängerbücher zu PHP 4 und PHP 5 mit MySQL 5, eine leicht verständliche
Einführung in die wichtigsten Einsatzgebiete von PHP und MySQL. Zahlrei-
che Kommentare und E-Mails zu diesem Bestseller haben gezeigt, dass es als
Lehrbuch sehr gut angenommen wird. Viele Leser fühlen sich erfolgreich an
die Hand genommen und in die PHP-Welt eingeführt. Die verschiedenen
Auflagen des Buchs wurden ständig überarbeitet bzw. erweitert.
Für den Einsteiger ergeben sich bei PHP 5.5 und MySQL 5.6 im Vergleich zu
älteren Versionen nur wenige Änderungen. Die Beispiele in diesem Buch
laufen unter allen Versionen von PHP 5 und MySQL 5, bis auf eine Aus-
nahme, siehe finally.
Die Software auf dem beiliegenden Datenträger können Sie sehr einfach
installieren. Mit ihrer Hilfe können Sie schnell eigene PHP-Programme ent-
wickeln und testen. PHP ist in vielen kostengünstigen Angeboten von
Website-Providern enthalten, sodass Sie die erlernten Kenntnisse dort
erfolgreich einsetzen können.
PHP lernenZum Erlernen von PHP anhand des vorliegenden Buchs werden von Ihnen,
dem künftigen PHP-Programmierer, lediglich Grundkenntnisse auf Anwen-
derebene von Microsoft Windows oder Linux verlangt. Sie sollten mit Dateien
und Verzeichnissen sowie mit einem Browser arbeiten können. Machen Sie
sich nun mit dieser erfolgreichen und einfachen Sprache vertraut!
2489-5.book Seite 17 Montag, 8. April 2013 1:47 13
1 Einführung
18
Für die Hilfe bei der Erstellung dieses Buchs bedanke ich mich bei Christine
Siedle, Anne Scheibe und Almut Poll sowie dem ganzen Team von Galileo
Press.
1.2 PHP – eine Beschreibung
Dynamische
Internetseiten
PHP ist die Abkürzung für PHP Hypertext Preprocessor. PHP ermöglicht
Entwicklern die Erzeugung dynamischer Internetseiten, mit denen soge-
nannte Web Applications, wie z.B. E-Commerce-Systeme, Chats oder Foren,
erstellt werden. Im Unterschied zu statischen Internetseiten kann sich der
Inhalt aufgrund von Aktionen des Benutzers oder neuer Basisinformatio-
nen, die z.B. aus Datenbanken stammen, jederzeit ändern.
MySQL PHP unterstützt insbesondere die einfache Auswertung von Formularen,
mit denen ein Benutzer Daten an eine Website senden kann. Es ermöglicht
die Zusammenarbeit mit vielen verschiedenen Datenbanksystemen. Die
weitaus meisten PHP-Entwickler setzen das Datenbanksystem MySQL ein.
Ein besonderer Schwerpunkt dieses Buchs ist daher der Zusammenarbeit
von PHP und MySQL gewidmet.
1.3 PHP – Vorzüge
Gründe für
die Verwendung
von PHP
PHP bietet im Vergleich zu anderen Programmiersprachen viele Vorteile.
Als wichtigste Gründe für die Nutzung von PHP sind zu nennen:
� Es dient der Entwicklung von Internetanwendungen.
� Es ermöglicht die einfache Entwicklung von Programmen.
� Es unterstützt verschiedene Plattformen.
� Es lässt sich leicht in den beliebten Apache-Webserver integrieren.
� Es ist erschwinglich und flexibel.
Im Folgenden sollen einige Eigenschaften von PHP näher betrachtet wer-
den: Erlernbarkeit, Einsatzbereich, Preis und Ausführungsort.
Erlernbarkeit
Leicht erlernbar Im Vergleich zu anderen Sprachen ist PHP relativ leicht erlernbar. Dies liegt
hauptsächlich daran, dass PHP im Gegensatz zu anderen Sprachen aus-
schließlich für die Webserver-Programmierung entwickelt wurde und nur
die dafür notwendigen Bestandteile enthält.
2489-5.book Seite 18 Montag, 8. April 2013 1:47 13
1.4 Aufbau dieses Buchs
19
1Einsatzbereich
Auf vielen
Systemen
einsetzbar
PHP wird von vielen Typen von Webservern einheitlich unterstützt.
Andere Sprachen kommen nur auf bestimmten Servertypen zum Einsatz.
Ein PHP-Programmierer kann also seine Kenntnisse später auf den unter-
schiedlichsten Systemen nutzen.
Preis
Frei verfügbarPHP kostet nichts; Sie müssen weder einen Compiler noch ein Entwick-
lungssystem kaufen. Es kann unter anderem auf dem ebenfalls frei verfüg-
baren und weitverbreiteten Apache-Webserver unter verschiedenen
Betriebssystemen eingesetzt werden.
Ausführungsort
ServerprogrammEine Internetanwendung kann entweder auf einem Webserver (Server-
programm) oder beim Betrachter einer Internetseite (Clientprogramm) aus-
geführt werden. PHP-Programme sind stets Serverprogramme. Beim
Betrachter wird also lediglich die Ausgabe der Programme dargestellt. Der
Browser des Betrachters muss nur in der Lage sein, den vom Server gesende-
ten HTML-Code umzusetzen. Er muss keine besonderen Eigenschaften besit-
zen, die mit der Programmiersprache des Webservers zusammenhängen.
Die Seiten können daher auch von älteren Browsern dargestellt werden.
Dateien und
Datenbanken
Darüber hinaus haben Serverprogramme im Unterschied zu Clientpro-
grammen (zum Beispiel in JavaScript) Zugriff auf Textdateien und Daten-
banken. Dies ermöglicht erst die Durchführung häufig vorkommender
Vorgänge, wie zum Beispiel die Suche nach bestimmten Daten oder die
Übermittlung von Daten an den Server.
SicherheitDer Betrachter kann keine Rückschlüsse auf den erzeugenden Programm-
code oder auf die Quelldaten ziehen. Die Programme können also vom
Betrachter nicht kopiert und zu eigenen Zwecken weiterverwendet werden.
1.4 Aufbau dieses Buchs
Alle Kapitel des Buchs haben den folgenden, lernfreundlichen Aufbau:
Grundlagen und
Anwendung
� Schritt für Schritt werden den bis zum jeweiligen Zeitpunkt vorhande-
nen Grundlagen und Kenntnissen neue Elemente hinzugefügt. Ich
beschreibe die Theorie und erläutere sie anhand von vollständigen,
anschaulichen und ausführlich kommentierten Beispielen.
2489-5.book Seite 19 Montag, 8. April 2013 1:47 13
1 Einführung
20
Übungen � Sie haben die Möglichkeit, Übungsaufgaben zum jeweiligen Thema zu
lösen. Sie sollen dabei das soeben erworbene Wissen umsetzen und
haben damit eine unmittelbare Erfolgskontrolle. Sie können so selbst
feststellen, ob Sie den betreffenden Abschnitt verstanden haben.
� Die Lösungen zu allen Übungsaufgaben finden Sie (zusammen mit dem
Code aller Programmbeispiele) auf dem Datenträger zum Buch. Sollten
Sie eine Übungsaufgabe nicht vollständig gelöst haben, so kann Ihnen
die dortige Lösung als Hilfestellung dienen.
� Sofern Sie selbst eine lauffähige Lösung gefunden haben, können Sie sie
mit der vorgeschlagenen Lösung vergleichen. Beim Programmieren gilt
der Grundsatz: Es gibt beliebig viele richtige Lösungen und nicht nur
eine sogenannte Musterlösung. Allerdings soll mit dem Aufbau der Bei-
spiel- und Übungsprogramme auch ein übersichtlicher und lesbarer
Programmierstil vermittelt werden, der ein strukturiertes Erlernen und
professionelles Programmieren ermöglicht.
1.5 Systemvoraussetzungen
Voraussetzungen PHP läuft unter zahlreichen Betriebssystemen, unter anderem unter Win-
dows, Mac OS X und Linux. Sie benötigen für Ihre Arbeit mit PHP neben
einem Browser zum Betrachten bzw. Benutzen der Seiten die folgende
Minimalausstattung:
� einen PHP-fähigen Webserver (zum Beispiel Apache)
� PHP selbst
� das Datenbanksystem MySQL
Buch-Datenträger Die beiden Installationspakete XAMPP und EasyPHP für Windows beinhal-
ten jeweils alle notwendigen Bestandteile sowie weitere nützliche Software
und sind bereits fertig vorkonfiguriert. Sie finden sie auf dem Datenträger
zum Buch. Die Installationen beschreibe ich in Anhang B. Die beschriebene
Installation für Ubuntu Linux sorgt für die richtige Konfiguration.
2489-5.book Seite 20 Montag, 8. April 2013 1:47 13
351
9
Kapitel 9
Felder
In Kapitel 2, »PHP-Programmierkurs«, habe ich Ihnen bereits eindimensio-
nale numerisch indizierte bzw. assoziative Felder vorgestellt. In diesem
Kapitel erhalten Sie weiterführende Informationen zu Feldern.
9.1 Operationen für numerisch indizierte Felder
Es gibt einige Operationen, die häufig mit Feldern ausgeführt werden.
Diese Operationen sollen zunächst besprochen werden.
9.1.1 Sortierung
Feld sortierenIm folgenden Beispiel wird ein Feld, das Temperaturwerte beinhaltet, auf-
steigend sortiert und ausgegeben. Anschließend wird das Feld absteigend
sortiert und ausgegeben. Das Programm:
<html><body><?php
$tp = array(17.5, 19.2, 21.8, 21.6, 20.2, 16.6);$gr = count($tp);
/* unsortiert ausgeben */for($i=0; $i<$gr; $i++)
echo "$tp[$i] ";echo " unsortiert<br />";
/* aufsteigend sortieren */sort($tp,SORT_NUMERIC);
/* ausgeben */for($i=0; $i<$gr; $i++)
2489-5.book Seite 351 Montag, 8. April 2013 1:47 13
9 Felder
352
echo "$tp[$i] ";echo "aufsteigend sortiert<br />";
/* absteigend sortieren */rsort($tp,SORT_NUMERIC);/* ausgeben */for($i=0; $i<$gr; $i++)
echo "$tp[$i] ";echo "absteigend sortiert";
?></body></html>
Listing 9.1 Datei num_sortieren.php
count() Die Funktion count() ermittelt die Größe eines Feldes, also die Anzahl der
Feldelemente.
Die beiden Funktionen
� sort() für aufsteigende Sortierung und
� rsort() für absteigende Sortierung (engl.: reverse sort)
haben jeweils zwei Parameter. Der erste Parameter ist der Name des Feldes,
und der zweite Parameter gibt den Typ der Sortierung an.
Dabei gibt es die folgenden Möglichkeiten:
� SORT_REGULAR: normale Sortierung
� SORT_NUMERIC: Sortierung nach Zahlenwerten
� SORT_STRING: Sortierung nach Zeichen
Die Ausgabe des Programms sehen Sie in Abbildung 9.1.
Abbildung 9.1 Sortierung eines Feldes
2489-5.book Seite 352 Montag, 8. April 2013 1:47 13
9.1 Operationen für numerisch indizierte Felder
353
9
Die Temperaturextremwerte, also der größte und der kleinste Wert des Fel-
des, lassen sich leicht ermitteln. Sie entsprechen dem ersten und dem letz-
ten Wert des Feldes nach der Sortierung.
9.1.2 Wert und Position der Extrema
Minimum,
Maximum
Falls die Elemente des Feldes nicht sortiert werden sollen, also ihre
ursprüngliche Sortierung erhalten bleiben soll, ist die Ermittlung der Tem-
peraturextrema etwas aufwendiger.
Für das oben angegebene Feld sollen Wert und Position der Temperaturex-
trema ermittelt werden. Dazu wählen wir folgende Vorgehensweise:
� Zunächst wird angenommen, dass der erste Wert gleichzeitig der Maxi-
malwert ist.
� Die anderen Werte werden mit diesem Maximalwert verglichen. Falls
einer der Werte größer ist als der bisherige Maximalwert, ist dieser Wert
der neue Maximalwert. Die Position und der Wert werden gespeichert.
Nach der Bearbeitung des gesamten Feldes steht das gewünschte Ergeb-
nis fest.
� Die gleiche Methode wird für das Minimum durchgeführt.
Das Programm:
<html><body><?php
$tp = array(17.5, 19.2, 21.8, 21.6, 20.2, 16.6);$gr = count($tp);
/* erste Annahme */$maxpos = 0;$minpos = 0;$max = $tp[0];$min = $tp[0];
/* restliche Elemente untersuchen */for($i=1; $i<$gr; $i++){
if($tp[$i] > $max){
2489-5.book Seite 353 Montag, 8. April 2013 1:47 13
9 Felder
354
$max = $tp[$i];$maxpos = $i;
}if($tp[$i] < $min){
$min = $tp[$i];$minpos = $i;
}}/* unverändert ausgeben */for($i=0; $i<$gr; $i++)
echo "<b>$i:</b> $tp[$i] ";echo "<br />Maximum: $max bei Position $maxpos<br />";echo "Minimum: $min bei Position $minpos";
?></body></html>
Listing 9.2 Datei num_extrema.php
Zur Kontrolle wird das Feld nach der Ermittlung der Extrema noch einmal
mit Position und Wert in Abbildung 9.2 ausgegeben.
Abbildung 9.2 Wert und Position der Extrema
Zur schnellen Extremwertbestimmung stehen auch die mathematischen
Funktionen max() und min() zur Verfügung. Allerdings liefern diese nur
den Wert, nicht aber die Position des Extremwerts.
9.1.3 Statistische Auswertung
Mithilfe des folgenden Programms wird festgestellt, welcher Anteil einer
Menge von Temperaturwerten oberhalb einer definierten Grenze liegt.
Diese Grenze kann vom Benutzer gewählt werden. Die Werte werden aus
2489-5.book Seite 354 Montag, 8. April 2013 1:47 13
9.1 Operationen für numerisch indizierte Felder
355
9
einer sequenziellen Datei eingelesen (siehe Kapitel 8, »Dateien und Ver-
zeichnisse«), in der sie zeilenweise gespeichert worden sind, siehe Abbil-
dung 9.3.
Abbildung 9.3 Eingabedatei
Zunächst das Formular:
<html><body><p>Bitte geben Sie den Grenzwert ein:</p><form action = "num_statistik.php" method = "post">
<p><input name="gr" /> Grenzwert</p><p><input type="submit" /><input type="reset" /></p>
</form></body></html>
Listing 9.3 Datei num_statistik.htm
Das Formular sehen Sie in Abbildung 9.4.
Abbildung 9.4 Eingabeformular für den Grenzwert
2489-5.book Seite 355 Montag, 8. April 2013 1:47 13
9 Felder
356
Der PHP-Programmcode zur Auswertung:
<html><body><?phpif(!file_exists("num_statistik.txt"))exit("Datei konnte nicht gefunden werden");
$fp = @fopen("num_statistik.txt","r");if(!$fp)exit("Datei konnte nicht geöffnet werden");
// Alle Werte in ein Feld lesen$i = 0;while (!feof($fp)){
$zeile = fgets($fp, 100);$tp[$i] = doubleval($zeile);$i++;
}fclose($fp);
// Anzahl feststellen$anzahl = count($tp);
// Werte oberhalb der Grenze zählen$c = 0;$grenze = doubleval($_POST["gr"]);for($i=0; $i<$anzahl; $i++)
if ($tp[$i] > $grenze)$c++;
// Ausgabeif ($anzahl > 0){
$anteil = $c / $anzahl * 100;$ausgabe = number_format($anteil,2);echo "$ausgabe Prozent der Werte
liegen oberhalb von $grenze";}else
echo "Die Datei beinhaltete keine Werte";
2489-5.book Seite 356 Montag, 8. April 2013 1:47 13
9.1 Operationen für numerisch indizierte Felder
357
9
?></body></html>
Listing 9.4 Datei num_statistik.php
Nach einem erfolgreichen Öffnen der Textdatei num_statistik.txt werden
die Werte zeilenweise gelesen, mithilfe der Funktion doubleval() in Zahlen
verwandelt und im Feld $tp gespeichert. Der Index des Feldes steht
zunächst auf 0; nach dem Lesen jeder Zeile vergrößert er sich um 1. Es kann
also das nächste Element des numerischen Feldes eingelesen werden.
Der Einsatz der Funktion doubleval() ist hier notwendig, da die Werte aus
der Datei zunächst als Zeichenketten eingelesen werden und in Zahlen mit
Nachkommastellen umgewandelt werden müssen:
$zeile = fgets($fp, 100);$tp[$i] = doubleval($zeile);
Falls Sie schon Erfahrungen mit anderen Programmiersprachen haben,
wird Ihnen spätestens an dieser Stelle auffallen, dass das Feld dynamisch
vergrößert wird. Sie müssen daher zu Beginn des Programms keine stati-
sche Feldgröße festlegen.
Der vom Benutzer eingegebene Grenzwert steht im Programm in der Vari-
ablen $_POST["gr"] zur Verfügung. Auch diese Zeichenkette wird in eine
Zahl mit Nachkommastellen (Variable $grenze) umgewandelt:
$grenze = doubleval($_POST["gr"]);
Innerhalb einer for-Schleife über alle Elemente des Feldes wird der Zähler
(Variable $c) erhöht, falls ein Element gefunden wird, das oberhalb der ein-
gegebenen Grenze liegt:
if ($tp[$i] > $grenze)$c++;
Der prozentuale Anteil dieser Werte an der Gesamtzahl der Elemente wird
berechnet (Variable $anteil). Diese Variable wird auf zwei Stellen nach dem
Komma formatiert:
$ausgabe = number_format($anteil,2);
2489-5.book Seite 357 Montag, 8. April 2013 1:47 13
9 Felder
358
Die Ausgabe des Programms zeigt Abbildung 9.5.
Abbildung 9.5 Statistische Auswertung
Übung »u_num«
In einer Textdatei (u_num.txt) sind Namen und Altersangaben aller Mit-
arbeiter einer Firma gespeichert. In der ersten Zeile steht der Name des
ersten Mitarbeiters, in der zweiten Zeile das Alter des ersten Mitarbeiters,
in der dritten Zeile der Name des zweiten Mitarbeiters usw., siehe Abbil-
dung 9.6.
Abbildung 9.6 Eingabedatei der Übung »u_num«
Schreiben Sie ein Programm (Datei u_num.php), mit dem Informationen
über die Altersstruktur ermittelt und wie in Abbildung 9.7 ausgegeben
werden.
Abbildung 9.7 Ausgabe der Übung »u_num«
2489-5.book Seite 358 Montag, 8. April 2013 1:47 13
9.1 Operationen für numerisch indizierte Felder
359
9
9.1.4 Feld verändern
Es gibt zahlreiche Funktionen zum komfortablen Umgang mit Feldern.
Ihre Namen beginnen jeweils mit array_. Als Beispiel sollen vier Funktio-
nen dienen, die zur schnellen Veränderung eines Feldes führen. Dies sind
im Einzelnen:
array_push()� array_push()
zum Hinzufügen von Elementen am Ende des Feldes
array_pop()� array_pop()
zum Entfernen von Elementen am Ende des Feldes
array_unshift()� array_unshift()
zum Hinzufügen von Elementen am Anfang des Feldes
array_shift()� array_shift()
zum Entfernen von Elementen am Anfang des Feldes
Die Anzahl der Elemente des Feldes verändert sich dabei jedes Mal. Die bei-
den letzten Funktionen führen zusätzlich zu einer Verschiebung der restli-
chen Feldelemente. Ein Beispiel:
<html><body><?php
function ausgabe($x){$gr = count($x);for($i=0; $i<$gr; $i++)echo "$x[$i] ";
echo "<br /> <br />";}
$st = array("Berlin", "Rom");ausgabe($st);
array_push($st, "Bern", "Brüssel");echo "array_push<br />";ausgabe($st);
$stadt = array_pop($st);
2489-5.book Seite 359 Montag, 8. April 2013 1:47 13
9 Felder
360
echo "array_pop<br />";echo "Entfernt: $stadt<br />";ausgabe($st);
array_unshift($st, "Madrid", "London");echo "array_unshift<br />";ausgabe($st);
$stadt = array_shift($st);echo "array_shift<br />";echo "Entfernt: $stadt<br />";ausgabe($st);
?></body></html>
Listing 9.5 Datei num_aendern.php
Erläuterung:
� Zunächst wird ein Feld mit zwei Elementen erzeugt und ausgegeben.
Nach jeder Veränderung innerhalb des Programms wird das Feld zur
Kontrolle erneut ausgegeben.
� Mit array_push() werden zwei Elemente am Ende angefügt. Mit array_
unshift() werden zwei Elemente am Anfang eingefügt. Die Anzahl der
Elemente, die angefügt werden können, ist beliebig. Die neuen Elemente
befinden sich anschließend in der gleichen Reihenfolge wie im Aufruf
der Funktion.
� Mit array_pop() wird das letzte Element des Feldes entfernt und als
Rückgabewert geliefert. Das Gleiche passiert bei array_shift(), nur am
Anfang des Feldes. Der Rückgabewert wird jeweils ausgegeben.
� Nach dem Aufruf der Funktionen array_unshift() und array_shift()
haben die restlichen Feldelemente ihre Position und ihren Index verän-
dert.
Eine Darstellung der jeweils aktuellen Feldelemente inklusive Index sehen
Sie in Abbildung 9.8.
2489-5.book Seite 360 Montag, 8. April 2013 1:47 13
9.2 Sortierung eines assoziativen Feldes
361
9
Abbildung 9.8 Feld ändern
9.2 Sortierung eines assoziativen Feldes
Key, ValueAssoziative Felder lassen sich nach Key (= Schlüssel) bzw. nach Value (=
Wert) sortieren. Dazu dienen die Funktionen asort(), arsort(), ksort()
und krsort(). Im folgenden Programm stelle ich Ihnen diese Sortierfunkti-
onen anhand eines Beispiels vor:
<html><body><?phpfunction ausgabe($tpfunc, $kommentar){
foreach($tpfunc as $name=>$wert)echo "$name: $wert ";
echo "$kommentar<br />";}
$tp["Mo"] = 17.5;$tp["Di"] = 19.2;$tp["Mi"] = 21.8;$tp["Do"] = 21.6;$tp["Fr"] = 17.5;$tp["Sa"] = 20.2;$tp["So"] = 16.6;ausgabe($tp, "unsortiert");
2489-5.book Seite 361 Montag, 8. April 2013 1:47 13
9 Felder
362
asort($tp, SORT_NUMERIC);ausgabe($tp, "aufsteigend nach Werten");
arsort($tp, SORT_NUMERIC);ausgabe($tp, "absteigend nach Werten");
ksort($tp, SORT_STRING);ausgabe($tp, "aufsteigend nach Keys");
krsort($tp, SORT_STRING);ausgabe($tp, "absteigend nach Keys");?></table></body></html>
Listing 9.6 Datei assoz_sortieren.php
Es wird ein assoziatives Feld mit sieben Werten erzeugt – ein Wert pro
Wochentag. Anschließend erfolgen die Sortierungen:
� Die Funktion asort() sortiert das Feld nach aufsteigendem Wert.
� Die Funktion arsort() sortiert das Feld nach absteigendem Wert.
� Die Funktion ksort() sortiert das Feld nach aufsteigendem Schlüssel.
� Die Funktion krsort() sortiert das Feld nach absteigendem Schlüssel.
Die Sortierung nach Wert erfolgt numerisch. Die Sortierung nach Schlüssel
erfolgt anhand von Zeichen, da der Schlüssel eine Zeichenkette ist. Zur
Kontrolle wird das Feld nach der jeweiligen Sortierung ausgegeben. In allen
Fällen bleibt die Zuordnung von Key zu Value erhalten. Das Feld wird
sowohl unsortiert als auch nach jedem Sortiervorgang ausgegeben, siehe
Abbildung 9.9.
Abbildung 9.9 Sortierung eines assoziativen Feldes
2489-5.book Seite 362 Montag, 8. April 2013 1:47 13
9.4 Zweidimensionale numerische Felder
363
9
9.3 Zweidimensionale Felder, allgemein
Bei mehrdimensionalen Feldern können Sie sowohl numerische und asso-
ziative Felder als auch gemischte Felder anwenden. Ein gemischtes Feld
beinhaltet sowohl numerische als auch assoziative Komponenten.
Betrachten wir einmal die folgende Tabelle 9.1. Sie ist Ihnen bereits aus Kapi-
tel 4, »Datenbanken mit MySQL«, bekannt und soll hier der Einführung von
zweidimensionalen Feldern dienen. Es wurde nur das Feld Geburtstag weg-
gelassen, um das Programm nicht zu aufwendig werden zu lassen.
Die oben angegebenen Daten sollen in einem zweidimensionalen Feld
abgelegt werden, um sie innerhalb eines Programms bearbeiten zu kön-
nen. Im ersten Beispiel ist dies ein rein numerisches Feld und im zweiten
Beispiel ein gemischtes Feld.
Später erläutere ich Ihnen, wie Sie die Daten aus einer Datenbank in ein
zweidimensionales assoziatives Feld einlesen können. Dadurch ergibt sich
innerhalb des Programms eine permanente Zugriffsmöglichkeit auf die
gesamten Daten, ohne erneut eine Datenbankabfrage durchführen zu
müssen.
9.4 Zweidimensionale numerische Felder
Zwei IndizesEin zweidimensionales numerisches Feld hat zwei Indizes statt eines Inde-
xes. Der erste Index stellt die Nummer der Zeile und der zweite Index die
Nummer der Spalte dar. Dies ist nur ein mögliches Vorstellungsmodell,
genauso gut könnte es umgekehrt sein. Sie sollten allerdings bei einem ein-
mal gewählten Modell bleiben, denn dies erleichtert die Bearbeitung zwei-
dimensionaler Probleme (und später die Bearbeitung höherdimensionaler
Probleme).
Name Vorname Personalnummer Gehalt
Maier Hans 6714 3500,00
Schmitz Peter 81343 3750,00
Mertens Julia 2297 3621,50
Tabelle 9.1 Inhalt einer Datenbanktabelle
2489-5.book Seite 363 Montag, 8. April 2013 1:47 13
9 Felder
364
Im folgenden Beispiel sind die Daten der oben angegebenen Tabelle (ohne
Überschrift) in einem zweidimensionalen Feld abgelegt:
<html><body><?php
// 1. Zeile und 2. Zeile$pers = array(array("Maier", "Hans", 6714, 3500),
array("Schmitz", "Peter", 81343, 3750));
// 3. Zeile$pers[2][0] = "Mertens";$pers[2][1] = "Julia";$pers[2][2] = 2297;$pers[2][3] = 3621.50;
echo "<table border='1'>";for($i=0; $i<3; $i++){
echo "<tr>";for($k=0; $k<4; $k++)
echo "<td>" . $pers[$i][$k] . "</td>";echo "</tr>";
}echo "</table>";
?></body></html>
Listing 9.7 Datei num_zweidim.php
Es werden zwei Techniken zur Erzeugung eines zweidimensionalen Feldes
gezeigt:
� Mithilfe der Funktion array() wird die Variable $pers zu einem Feld mit
zwei Elementen. Diese Elemente sind wiederum Teilfelder, haben die
Namen $pers[0] und $pers[1] und bestehen jeweils aus vier Elementen.
Die Nummerierung der Elemente beginnt sowohl beim ersten als auch
beim zweiten Index bei 0. Jedes Teilfeld wurde ebenfalls mithilfe der
Funktion array() erzeugt.
2489-5.book Seite 364 Montag, 8. April 2013 1:47 13
9.4 Zweidimensionale numerische Felder
365
9
� Mehrdimensionale Felder können Sie, genau wie eindimensionale Fel-
der, einfach durch die Zuweisung einzelner Elemente erzeugen oder ver-
größern. Dies ist hier mit den Zuweisungen in der Form $pers[2][0] =
"Mertens"; usw. geschehen. Dabei müssen Sie die bisherige Nummerie-
rung beachten; andernfalls könnten auch hier vorhandene Elemente
überschrieben werden.
Insgesamt hat das Feld nun zwölf Elemente: drei Teilfelder mit je vier Ele-
menten. Die Struktur erkennen Sie in Tabelle 9.2.
Diese Elemente werden anschließend mithilfe einer geschachtelten for-
Schleife ausgegeben. Eine Zeile der Tabelle wird als eine Zeile auf dem Bild-
schirm dargestellt. Dabei nimmt die Schleifenvariable $i nacheinander die
verwendeten Werte für den Zeilenindex (0 bis 2) an. Die Schleifenvariable
$k nimmt nacheinander die verwendeten Werte für den Spaltenindex (0 bis
3) an. Die Ausgabe des Programms sehen Sie in Abbildung 9.10.
Name des
Elements
Zeilenindex des
Elements
Spaltenindex des
Elements
Wert des
Elements
$pers[0][0] 0 0 "Maier"
$pers[0][1] 0 1 "Hans"
$pers[0][2] 0 2 6714
$pers[0][3] 0 3 3500
$pers[1][0] 1 0 "Schmitz"
$pers[1][1] 1 1 "Peter"
$pers[1][2] 1 2 81343
$pers[1][3] 1 3 3750
$pers[2][0] 2 0 "Mertens"
$pers[2][1] 2 1 "Julia"
$pers[2][2] 2 2 2297
$pers[2][3] 2 3 3621,50
Tabelle 9.2 Zweidimensionales numerisches Feld
2489-5.book Seite 365 Montag, 8. April 2013 1:47 13
9 Felder
366
Abbildung 9.10 Zweidimensionales numerisches Feld
Hinweis
Einfache Variablen, Elemente von eindimensionalen numerischen Fel-
dern und Objekteigenschaften lassen sich auch innerhalb von Zeichen-
ketten notieren, um zum Beispiel eine Ausgabeanweisung übersichtlicher
zu gestalten. Elemente von assoziativen Feldern oder von Feldern mit
mehr als einer Dimension müssen Sie außerhalb von Zeichenketten
notieren.
Übung »u_num_zweidim«
Speichern Sie die Daten aus der Tabelle der Festplatten aus Kapitel 4,
»Datenbanken mit MySQL«, in einem zweidimensionalen Feld ab, ohne
das Feld prod. Geben Sie anschließend die Daten dieses zweidimensiona-
len Feldes wie in Abbildung 9.11 auf dem Bildschirm aus (u_num_zwei-
dim.php).
Abbildung 9.11 Ergebnis der Übung »u_num_zweidim«
2489-5.book Seite 366 Montag, 8. April 2013 1:47 13
9.5 Zweidimensionale gemischte Felder
367
9
9.5 Zweidimensionale gemischte Felder
Ein Index und
ein Schlüssel
Ein zweidimensionales gemischtes Feld hat ebenfalls zwei Indizes. Der
erste Index stellt die Nummer der Zeile und der zweite Index die Bezeich-
nung der Spalten als Schlüssel dar. Dies ist lediglich ein mögliches Vorstel-
lungsmodell:
<html><body><?php
// 1. Zeile und 2. Zeile$pers = array(array("Name"=>"Maier", "Vorname"=>"Hans",
"Pnr"=>6714, "Gehalt"=>3500),array("Name"=>"Schmitz", "Vorname"=>"Peter","Pnr"=>81343, "Gehalt"=>3750));
// 3. Zeile$pers[2]["Name"] = "Mertens";$pers[2]["Vorname"] = "Julia";$pers[2]["Pnr"] = 2297;$pers[2]["Gehalt"] = 3621.50;echo "<table border='1'>";for($i=0; $i<3; $i++){
echo "<tr>";foreach($pers[$i] as $name=>$wert)
echo "<td>$name: $wert</td>";echo "</tr>";
}echo "</table>";
?></body></html>
Listing 9.8 Datei num_assoz.php
In dem Feld $pers sind die Daten aus der Tabelle und außerdem die Spal-
tenüberschriften (als Schlüssel) abgelegt. Es werden zwei Techniken zur
Erzeugung eines Feldes gezeigt:
2489-5.book Seite 367 Montag, 8. April 2013 1:47 13
9 Felder
368
� Mithilfe der Funktion array() wird die Variable $pers zu einem numeri-
schen Feld mit zwei Elementen. Die Nummerierung des numerischen
Feldes beginnt bei 0.
� Die beiden Elemente des Feldes sind assoziative Teilfelder, haben die
Namen $pers[0] und $pers[1] und bestehen jeweils aus vier Elementen.
Die einzelnen assoziativen Teilfelder werden genauso wie eindimensio-
nale assoziative Felder (mit Schlüssel und Wert) erzeugt.
� Gemischte Felder können auch einfach durch die Zuweisung einzelner
Elemente erzeugt oder vergrößert werden. Dies ist hier mit den Zuwei-
sungen in der Form $pers[2]["Name"] = "Mertens"; usw. geschehen.
Insgesamt hat das Feld nun zwölf Elemente: drei Teilfelder mit je vier Ele-
menten. Die Struktur erkennen Sie in Tabelle 9.3.
Diese Elemente werden anschließend mithilfe einer geschachtelten
Schleife ausgegeben. Eine Zeile der Tabelle wird als eine Zeile auf dem Bild-
Name des Elements Index des
Teilfeldes
Key des Elements
innerhalb des Teilfeldes
Wert des
Elements
$pers[0]["Name"] 0 "Name" "Maier"
$pers[0]["Vorname"] 0 "Vorname" "Hans"
$pers[0]["Pnr"] 0 "Pnr" 6714
$pers[0]["Gehalt"] 0 "Gehalt" 3500
$pers[1]["Name"] 1 "Name" "Schmitz"
$pers[1]["Vorname"] 1 "Vorname" "Peter"
$pers[1]["Pnr"] 1 "Pnr" 81343
$pers[1]["Gehalt"] 1 "Gehalt" 3750
$pers[2]["Name"] 2 "Name" "Mertens"
$pers[2]["Vorname"] 2 "Vorname" "Julia"
$pers[2]["Pnr"] 2 "Pnr" 2297
$pers[2]["Gehalt"] 2 "Gehalt" 3621,50
Tabelle 9.3 Zweidimensionales gemischtes Feld
2489-5.book Seite 368 Montag, 8. April 2013 1:47 13
9.5 Zweidimensionale gemischte Felder
369
9
schirm dargestellt. Dabei nimmt die Schleifenvariable $i nacheinander die
verwendeten Werte für die Nummer des Teilfeldes an (0 bis 2).
Innerhalb der for-Schleife werden, jeweils mithilfe einer foreach-Schleife,
die Elemente der Teilfelder ausgegeben. Jedes Teilfeld entspricht einem
eindimensionalen assoziativen Feld. Es muss allerdings darauf geachtet
werden, dass foreach auf den Namen des Teilfeldes angewendet wird
($pers[$i]). Die Ausgabe des Programms zeigt Abbildung 9.12.
Abbildung 9.12 Zweidimensionales gemischtes Feld
Übung »u_num_assoz«
Speichern Sie die Daten aus der Tabelle der Festplatten aus Kapitel 4,
»Datenbanken mit MySQL«, in einem zweidimensionalen Feld ab, ohne
das Feld prod. Benutzen Sie die Feldnamen als Schlüssel. Geben Sie
anschließend die Daten dieses zweidimensionalen Feldes wie in Abbil-
dung 9.13 auf dem Bildschirm aus (Datei u_num_assoz.php). Beachten Sie
besonders die Aufteilung: Die Schlüssel stehen in der Überschrift, die
Werte danach.
Abbildung 9.13 Zweidimensionales gemischtes Feld
2489-5.book Seite 369 Montag, 8. April 2013 1:47 13
9 Felder
370
9.6 Zweidimensionale assoziative Felder
Im folgenden Programm wird eine Abfrage an eine Datenbank gesendet.
Das Ergebnis der Abfrage wird vollständig in einem zweidimensionalen
assoziativen Feld gespeichert. Auf alle Elemente des Feldes kann zu einem
späteren Zeitpunkt des Programms zugegriffen werden.
Zwei Schlüssel Als Key der ersten Dimension des Feldes wird eine eindeutige Bezeichnung
benötigt. Dazu bietet sich das eindeutige Feld der Tabelle an. Im vorliegen-
den Fall ist dies das Feld personalnummer aus der Tabelle personen. Jeder
beliebige Feldinhalt aus jedem Datensatz steht dann über die Personal-
nummer auf komfortable Weise zur Verfügung.
<html><body><?php
// Die Informationen werden aus der Datenbank geholt$con = mysqli_connect("","root");mysqli_select_db($con, "firma");$res = mysqli_query($con, "select * from personen");
// Die Datensätze werden einzeln gelesenwhile($dsatz = mysqli_fetch_assoc($res)){
// Der Key für das zweidim. Array wird ermittelt$ax = $dsatz["personalnummer"];
// Die Informationen aus dem Datensatz werden// über den Key in dem zweidim. Feld gespeichert$tab[$ax]["name"] = $dsatz["name"];$tab[$ax]["vorname"] = $dsatz["vorname"];$tab[$ax]["gehalt"] = $dsatz["gehalt"];
}mysqli_close($con);
// Alle Datensätze werden mit allen Inhalten angezeigtecho "<table border='1'>";foreach($tab as $dsname=>$dswert){
echo "<tr>";// Der Key wird ausgegebenecho "<td>$dsname:</td>";
2489-5.book Seite 370 Montag, 8. April 2013 1:47 13
9.6 Zweidimensionale assoziative Felder
371
9
// Die Infos aus dem Datensatz werden ausgegebenforeach($dswert as $name=>$wert)
echo "<td>$wert</td>";echo "</tr>";
}echo "</table>";
// Einzelne Beispielinformationen werden angezeigtecho "<p>";echo $tab["2297"]["name"] . "<br />";echo $tab["6714"]["gehalt"] . "<br />";echo $tab["6715"]["vorname"] . "</p>";
?></body></html>
Listing 9.9 Datei assoz_zweidim.php
Jeder Datensatz des Abfrageergebnisses wird kurzfristig in dem assoziati-
ven Feld $dsatz gespeichert. Das Element personalnummer dient dem zwei-
dimensionalen assoziativen Feld $tab als erster Schlüssel. Mit diesem
Schlüssel werden die restlichen Inhalte (außer personalnummer) jedes
Datensatzes im Feld $tab gespeichert.
foreachDie Ausgabe jedes Feldelements gelingt über eine doppelte foreach-
Schleife. In der äußeren Schleife wird nur der erste Schlüssel ermittelt. Der
Wert dieses ersten Schlüssels dient wiederum als zweiter Schlüssel.
Am Ende werden zu Demonstrationszwecken einige einzelne Feldele-
mente ausgegeben. Ein Zugriff auf einen nicht existierenden Schlüssel
wird ignoriert bzw. führt zu einer Meldung, je nach Einstellung der Fehler-
anzeige. Die Ausgabe des Programms sieht wie in Abbildung 9.14 aus.
Abbildung 9.14 Zweidimensionales assoziatives Feld
2489-5.book Seite 371 Montag, 8. April 2013 1:47 13
9 Felder
372
9.7 list-Anweisung
Im Zusammenhang mit numerischen Felder ist die list-Anweisung recht
nützlich. Mit ihrer Hilfe lassen sich in einem Zug mehrere Elemente eines
Feldes einzelnen Variablen zuordnen. Nachfolgend zwei Beispiele:
Übung »u_assoz_zweidim«
Aus der Tabelle fp der Datenbank hardware sollen alle Datensätze gele-
sen und mithilfe der Funktion mysqli_fetch_assoc() in einem zwei-
dimensionalen assoziativen Feld gespeichert werden (Datei u_assoz_
zweidim.php). Anschließend soll eine HTML-Tabelle mit den folgenden
Spalten ausgegeben werden:
� Artikelnummer
� Kapazität in GB
� Preis und Preis-Leistungs-Verhältnis (PLV = Preis in €/GB)
Das Ergebnis für PLV soll nicht nur temporär berechnet und unmittelbar
ausgegeben werden; stattdessen soll für die zweite Dimension des assozi-
ativen Feldes eine weitere Spalte mit dem Key plv angelegt werden. Der
Wert steht somit für die gesamte Dauer des Programms innerhalb des asso-
ziativen Feldes zur Verfügung. Nutzen Sie die Funktion number_format()zur Darstellung des PLV-Werts. Die Ausgabe sollte wie in Abbildung 9.15
aussehen.
Abbildung 9.15 Ergebnis der Übung »u_assoz_zweidim«
2489-5.book Seite 372 Montag, 8. April 2013 1:47 13
9.7 list-Anweisung
373
9
<html><body><?php
/* Elemente aus numerischen Arrays, Kommas setzen */$farben = array("rot", "gelb", "blau", "magenta", "cyan");list($erste, $zweite, , $vierte) = $farben;echo "$erste, $zweite, $vierte <br /><br />";
/* Datenbankzugriff, mit mysqli_fetch_row() */$con = mysqli_connect("","root");mysqli_select_db($con, "firma");$res = mysqli_query($con, "select * from personen");while(list($name, $vorname, $gehalt) =
mysqli_fetch_row($res))echo "$name, $vorname, $gehalt <br />";
mysqli_close($con);?></body></html>
Listing 9.10 Datei num_list.php
Einzelne ElementeIm ersten Beispiel wird ein numerisches Array mit fünf Elementen erzeugt.
In der nächsten Zeile werden das erste, das zweite und das vierte Element
des Feldes mithilfe der list-Anweisung einzelnen Variablen zugeordnet.
Es müssen nicht alle Elemente zugewiesen werden; allerdings müssen
Kommata gesetzt werden, damit die richtigen Elemente des Arrays ausge-
wählt werden.
mysqli_fetch_row()Im zweiten Beispiel wird mithilfe der Funktion mysqli_fetch_row() ein
numerisches Array aus einem Datenbank-Abfrageergebnis ermittelt. Die-
ses numerische Array kann anschließend mit der list-Anweisung genutzt
werden, um die Inhalte der einzelnen Datenbankfelder zuzuweisen.
Die Funktion mysqli_fetch_assoc() kann hier nicht eingesetzt werden, da
sie ein assoziatives Array liefert, das nicht mit der list-Anweisung genutzt
werden kann.
2489-5.book Seite 373 Montag, 8. April 2013 1:47 13
611
Index
Index
-- (minus minus) .......................................................... 56
– (minus) ......................................................................... 28
! (Ausrufezeichen) ....................................................... 48
!= (ungleich, PHP) ....................................................... 40
!== .................................................................................... 318
$ (Dollar) .......................................................................... 78
$_COOKIE..................................................................... 439
$_GET..................................................... 35, 154, 306, 433
$_POST ................................................................. 307, 424
$_SESSION .................................................................... 417
% (Modulo) ............................................................ 28, 410
% (Platzhalter) ............................................................. 189
& (Referenz) ................................................................... 88
& (URL) .................................................................. 153, 306
&& (logisches Und) ..................................................... 47
' (Hochkomma) ............................................................ 30
* (mal) ............................................................................... 28
+ (plus).............................................................................. 28
++ (plus plus) ................................................................. 56
. (Verkettung)................................................................ 30
.= (Anhängen an Zeichenketten) .......................... 30
/ (durch) ........................................................................... 28
/* (mehrzeiliger Kommentar) ................................. 24
// (einzeiliger Kommentar) ..................................... 24
:: (Operator)................................................................. 264
<> (ungleich, SQL) ...................................................... 188
= (gleich) ........................................................................ 188
== (gleich)....................................................................... 40
=== ................................................................................... 318
=> (Zuordnung)............................................................. 72
> (größer)............................................................... 40, 188
>= (größer gleich)............................................... 40, 188
? (URL).................................................................... 153, 306
?> ......................................................................................... 21
@ ............................................................................ 306, 550
__autoload()................................................................. 281
__clone()........................................................................ 259
__construct() .............................................................. 249
__destruct() .................................................................. 251
__FILE__ ........................................................................ 273
__LINE__ ....................................................................... 273
__METHOD__ ............................................................. 273
__toString() .................................................................. 277
{nb} .................................................................................. 531
||.......................................................................................... 46
127.0.0.1.......................................................................... 389
A
Absatzumbruch ........................................................... 22
absenden ................................................................ 34, 135
abstract ........................................................................... 271
action ............................................................................... 34
Addition .......................................................................... 28
Ajax ................................................................................. 475
Aktionsabfrage .......................................................... 206
Aktionselement .......................................................... 135
align ................................................................................. 60
and................................................................................... 189
Angriff........................................................................... 305
Anmeldung ................................................................. 420
Anweisungsblock ................................................. 42, 56
Apache ............................................................................. 22
Ubuntu..................................................................... 606
Apache-Webserver
Ubuntu..................................................................... 604
append ........................................................................... 329
array() ............................................................................... 69
array_key_exists()..................................................... 287
array_pop() .................................................................. 359
array_push() ................................................................ 359
array_shift() ................................................................. 359
array_unshift() ........................................................... 359
arsort() ........................................................................... 361
as ........................................................................................ 73
asc .................................................................................... 189
asort() ............................................................................. 361
asXML() .......................................................................... 473
Asynchronous JavaScript and XML.................... 475
Aufhängen ...................................................................... 57
Ausnahmebehandlung ............................................. 98
Ausrichtung.................................................................. 60
Auswahlelement......................................................... 125
Auswahlmenü ........................................................... 203
einfaches .................................................................. 129
mehrfaches............................................................... 132
auto_increment ................................................ 388, 561
autoload ........................................................................ 282
2489-5.book Seite 611 Montag, 8. April 2013 1:47 13
Index
612
B
base_convert() ............................................................ 414
Basisklasse ........................................................... 243, 262
Bedingung ..................................................................... 40
Benutzeroberfläche .................................................. 218
bigint .............................................................................. 388
bindec() .......................................................................... 414
Blog ................................................................................. 559
body ................................................................................ 593
Bogenmaß ................................................................... 404
border............................................................................ 596
br ...................................................................................... 595
break ........................................................................... 53, 65
C
Cache ............................................................................. 307
call-by-reference .......................................................... 86
call-by-value .................................................................. 86
CAPTCHA ...................................................................... 514
case.................................................................................... 52
catch.................................................................................. 98
ceil()................................................................................ 402
Chat ................................................................................. 547
chdir() ............................................................................. 348
Checkbox ...................................................................... 130
checkdate() .................................................................. 380
checked .................................................................. 127, 130
chr() .................................................................................. 321
class ................................................................................. 245
Clientprogramm .......................................................... 19
closedir().............................................................. 346, 348
cols .................................................................................. 120
confirm() ...................................................................... 220
connect.inc.php.......................................................... 236
Container ...................................................................... 592
continue .......................................................................... 67
Cookies ................................................................. 417, 438
anzeigen .................................................................. 440
Lebensdauer........................................................... 306
copy() .............................................................................. 162
count().................................................................... 162, 352
crc32() ............................................................................. 325
crypt() ............................................................................. 325
CSS ........................................................................... 143, 218
Formatvorlage ........................................................ 152
CSS-Datei
externe....................................................................... 152
CSV-Datei ...................................................................... 313
CSV-Format .................................................................. 337
D
date() .............................................................. 345, 377, 381date.timezone ............................................................ 346Datei
Angabe der Position............................................. 341binärer Zugriff ........................................................ 327Ende ermitteln ........................................................ 331Existenz .................................................................... 329externe......................................................................... 78formatierte Ausgabe............................................ 341Größe feststellen.................................................... 343Informationen ermitteln.......................... 344, 346Lese-/Schreibposition festlegen....................... 341lesen............................................................................ 328öffnen........................................................................ 329schließen .................................................................. 330schreiben................................................................... 333sequenzieller Zugriff ............................................ 327Text anhängen ....................................................... 335vereinfachtes Lesen .............................................. 333wahlfreier Zugriff .......................................... 327, 341Zeichenkette lesen................................................ 330Zeichenkette schreiben ....................................... 334zurückspulen........................................................... 341
Dateityp ......................................................................... 327Datenbank .................................................................... 177
Abfrage ............................................................. 187, 190Ajax............................................................................ 486auswählen................................................................ 186erzeugen .................................................................. 180hochladen................................................................. 234SQL kontrollieren ................................................. 190
DatenbankabfrageAnzahl der Datensätze........................................ 187Datensatz speichern ............................................ 187HTML-Tabelle ausgeben..................................... 193
Datenbankbrowser................................................... 226Datenbankserver........................................................ 178
Verbindung aufnehmen ............................ 186, 235Datenfeld....................................................................... 177Datensatz ...................................................................... 177
ändern ............................................................. 208, 210
2489-5.book Seite 612 Montag, 8. April 2013 1:47 13
Index
613
auswählen........................................................ 187, 188
erzeugen .................................................................. 204
identifizieren........................................................... 182
löschen ....................................................................... 215
Datentyp ......................................................................... 25
Datum und Zeit .......................................................... 375
Datenbankspeicherung ...................................... 387
Differenz ................................................. 382, 384, 385
erzeugen .......................................................... 381, 382
formatieren ............................................................. 377
Gültigkeit prüfen .................................................. 380
Systemzeit ermitteln............................................ 375
decbin() .......................................................................... 414
dechex() ......................................................................... 414
decoct() .......................................................................... 414
default .............................................................................. 53
deg2rad() ...................................................................... 404
delete ...................................................................... 217, 222
deprecated .................................................................. 300
desc.................................................................................. 189
Deserialisierung ......................................................... 279
Destruktor .................................................................... 251
Dezimalsystem ........................................................... 414
Dezimaltrennzeichen ................................................ 26
display_errors ............................................................ 302
Division ........................................................................... 28
ganzzahlige ............................................................... 28
do while .......................................................................... 64
document ..................................................................... 137
Dokumentenbetrachter.......................................... 519
Dollarzeichen ................................................................ 25
doubleval().............................................................. 37, 357
Dualsystem .................................................................. 414
Dump.............................................................................. 237
E
e .......................................................................................... 27
E_ALL ............................................................................. 302
EasyPHP.............. 20, 22, 179, 186, 301, 346, 447, 601
echo ................................................................................... 22
e-Funktion ................................................................... 399
Eigenschaft ................................................................... 243
statische................................................................... 268
Eingabe ............................................................................ 32
Eingabefeld
Passwort ................................................................... 122
Eingabemaske............................................................. 149
Einsatzbereich ............................................................... 19
Element
verstecktes....................................... 122, 154, 214, 223
else .................................................................................... 43
automatisieren....................................................... 541
HTML-Mail ............................................................... 541
mit Anhang .............................................................. 541
enctype.......................................................................... 160
endif ................................................................................. 54
Endliche Zahl ............................................................. 405
Endlosschleife................................................................ 57
Ereignis......................................................................... 489
Ergebniskennung ....................................................... 187
Erlernbarkeit .................................................................. 18
error_log ....................................................................... 302
error_reporting................................................... 99, 301
Event-Handler ............................................................. 137
Exception Handling ................................................... 98
exec()
PDO ............................................................................ 461
exit .......................................................................... 173, 329
explode()............................................................... 162, 312
Exponentialzahl............................................................ 27
extends.......................................................................... 263
extension_dir ............................................................. 494
extension_loaded() .................................................. 494
F
false.......................................................................... 40, 138
Fatal Error....................................................................... 99
fclose()............................................................................ 330
Fehler ............................................................................. 299
Feiertag............................................................................ 111
berechnen ................................................................ 389
Feld.................................................................................... 67
assoziatives......................................................... 35, 70
ein- oder mehrdimensionales............................ 68
Element entfernen................................................ 359
Element hinzufügen ............................................ 359
Extrema ermitteln................................................. 353
Größe ermitteln...................................................... 352
numerisch indiziertes ........................................... 68
Operation ......................................................... 351, 361
Schlüssel ...................................................................... 71
2489-5.book Seite 613 Montag, 8. April 2013 1:47 13
Index
614
sortieren .................................................................... 351
statistische Auswertung .................................... 354
Wert ............................................................................... 72
zweidimensionales assoziatives ..................... 370
zweidimensionales gemischtes ....................... 367
zweidimensionales numerisches .................... 363
Feld von Formularelementen ...................... 133, 145
feof()................................................................................. 331
fgets()............................................................................. 330
file ................................................................................... 160
file() ................................................................................. 333
file_exists()................................................................... 329
file_get_contents().................................................... 281
file_put_contents() ......................................... 280, 473
filesize() ......................................................................... 343
FileZilla ......................................................................... 602
finally ............................................................................. 103
Firefox
Datenschutz ............................................................ 439
floor()..................................................................... 113, 402
fopen()............................................................................ 329
for ...................................................................................... 55
foreach .................................................................... 73, 468
form ......................................................................... 34, 594
Formatierung ..................................................... 103, 143
Formular ............................................................. 307, 593
auswerten ........................................................... 32, 117
prüfen ........................................................................ 136
und Programm in einer Datei.......................... 149
Forum............................................................................. 568
Forward-Slash ............................................................. 592
fpdf .................................................................................. 519
AddLink() .................................................................. 534
AddPage().................................................................. 521
AliasNbPages() ........................................................ 531
Cell() .......................................................... 523, 526, 536
Footer()....................................................................... 531
GetX()......................................................................... 538
GetY() ......................................................................... 538
Header() ..................................................................... 531
Image() .............................................................. 533, 537
Line() .......................................................................... 538
Link() .......................................................................... 537
Ln()...................................................................... 525, 528
Output() ..................................................................... 521
Rect() .......................................................................... 539
SetDrawColor() ...................................................... 528
SetFillColor() .................................................. 528, 539
SetFont().................................................................... 523
SetFontSize()............................................................ 525
SetLineWidth() ............................................... 528, 538
SetLink() .................................................................... 535
SetTextColor() ......................................................... 525
SetX() .......................................................................... 539
SetXY() ....................................................................... 539
SetY() .......................................................................... 531
Version 1.7................................................................ 520
Write() ................................................................ 525, 535
fputs() ............................................................................ 334
Frame .............................................................................. 143
fseek()..................................................................... 341, 344
ftell() ................................................................................ 341
FTP ................................................................................... 175
func_get_arg() .............................................................. 93
func_num_arg() .......................................................... 93
function .................................................................. 76, 245
function_exists()....................................................... 103
Funktion .......................................................................... 75
Aufruf ........................................................................... 77
benutzerdefinierte .................................................. 95
Definition ................................................................... 76
Existenz prüfen ...................................................... 103
mathematische ..................................................... 399
Parameter ..................................................... 77, 78, 81
rekursive ............................................................ 75, 349
Rückgabewert ........................................................... 84
Übergabe von Parametern ................................. 86
variable Parameterliste ........................................ 93
verlassen ..................................................................... 85
G
Gauß, Carl Friedrich ................................................... 112
gd_info() ....................................................................... 494
GD-Bibliothek............................................................. 493
gedit............................................................................... 604
Geldanlage ................................................................... 105
get....................................................................................... 35
get_class_methods()................................................ 276
get_declared_classes() ............................................ 276
getAttribute() .............................................................. 486
getAvailableDrivers().............................................. 460
getcwd()......................................................................... 349
getElementById() ...................................................... 478
getElementsByTagName()..................................... 485
2489-5.book Seite 614 Montag, 8. April 2013 1:47 13
Index
615
getimagesize() ............................................................ 566
GET-Parameter........................................................... 430
getrandmax().............................................................. 408
Gleich...................................................................... 40, 188
Gleichheitszeichen
doppeltes ..................................................................... 41
global ................................................................................ 91
Grafik ............................................................................. 493
Bild aus Datei laden ............................................. 501
Bildausschnitt ....................................................... 504
Breite ......................................................................... 502
Ellipse ........................................................................ 504
erzeugen und anzeigen ..................................... 498
erzeugen und speichern .................................... 496
Farbpalette ............................................................. 496
gepunktete Linie ................................................... 509
Größe ändern......................................................... 566
Größe feststellen................................................... 566
Höhe .......................................................................... 502
interner Font .......................................................... 498
leer erzeugen.......................................................... 566
Linie ........................................................................... 507
Linienart .................................................................. 509
Liniendicke.............................................................. 509
mit Farbe füllen .......................................... 496, 509
Objekt erzeugen.................................................... 496
Pixel ........................................................................... 507
Polygon .................................................................... 506
Rechteck................................................................... 506
speichern .................................................................. 495
Text drehen.............................................................. 501
Text erzeugen ........................................................ 499
Zeichenelement..................................................... 504
Gregorianischer Kalender ..................................... 380
Groß- und Kleinschreibung..................................... 26
Größer .................................................................... 40, 188
Größer gleich............................................................... 188
group .............................................................................. 583
Grundrechenart ......................................................... 163
Gültigkeitsbereich ................................................... 406
H
Handle............................................................................ 256
Hash-Tabelle ................................................................. 68
head................................................................................. 593
header()........................................................ 478, 497, 521
Hexadezimalsystem................................................. 414
hexdec()......................................................................... 414
hidden................................................................... 122, 306
Hintergrundfarbe ...................................................... 152
Hochkommata ...................................................... 30, 72
Hochladen von Daten .............................................. 159
Hochladen von Programmen ............................... 175
Hover-Effekt ................................................................. 152
href.................................................................................. 597
HTML............................................................................... 591
HTML-Entities ........................................................... 308
HTML-Mail ........................................................... 541, 544
htmlspecialchars() ................................................... 308
HTML-Tabelle ............................................................... 59
HTTP ............................................................................... 478
Hyperlink .............................................................. 151, 597
Daten anhängen .................................................... 157
I
if .................................................................................. 40, 41
if/else ........................................................................ 40, 42
image/jpg ..................................................................... 497
imagearc() .................................................................... 505
imagecolorallocate() ............................................... 496
imagecopy()................................................................ 504
imagecopyresampled() ........................................... 566
imagecreate() ............................................................. 496
imagecreatefromjpeg() ........................................... 502
imagecreatetruecolor() ........................................... 566
imagedashedline() ................................................... 509
imagedestroy() .......................................................... 496
imageellipse() ............................................................. 505
imagefill() .................................................................... 496
imagefilledarc() ......................................................... 506
imagefilledellipse() ................................................... 505
imagefilledpolygon() ............................................... 507
imagefilledrectangle() ............................................. 507
imagefilltoborder() ................................................... 510
imagejpeg() ................................................................. 496
imageline() .................................................................. 509
imagepng()......................................................... 496, 502
imagepolygon().......................................................... 507
imagerectangle()........................................................ 507
imagesetpixel() ......................................................... 509
imagesetstyle() .......................................................... 509
imagesetthickness() ................................................ 509
imagestring().............................................................. 499
imagesx() ...................................................................... 502
2489-5.book Seite 615 Montag, 8. April 2013 1:47 13
Index
616
imagesy()...................................................................... 502imagettftext()............................................................. 500implode() ....................................................................... 313inc.php ............................................................................. 95include ...................................................................... 78, 95include_once................................................................. 78Index................................................................................. 69ini_get() ............................................................... 303, 494ini_set().................................................................. 99, 304innerHTML................................................................... 478input ....................................................................... 118, 594insert ........................................................... 206, 222, 389Installation .................................................................. 599instanceof ..................................................................... 274Instanz ........................................................................... 243integer primary key................................................. 448Internetseite
dynamische ................................................................ 18intval()..................................................................... 37, 379IP-Adresse ..................................................................... 387is_dir() ............................................................................ 348is_file() ........................................................................... 348is_finite()...................................................................... 405is_infinite().................................................................. 405is_nan() ......................................................................... 406is_readable() ................................................................ 348is_writeable()............................................................... 348isset() ................................................... 102, 132, 150, 420
J
JavaScript ...................................................................... 218
Ajax ............................................................................ 475
Ereignis .................................................................... 489
K
Kapselungsprinzip ................................................... 246
Key...................................................................................... 71
Klammer
eckige ........................................................................... 69
geschweifte.......................................................... 42, 56
Klasse.............................................................................. 243
abgeleitete ...................................................... 244, 262
abstrakte ................................................................... 271
Klassendefinition ............................................. 244, 245
Klassenhierarchie ..................................................... 264
Klassenkonstante ..................................................... 268
Kleiner .................................................................... 40, 188Kleiner gleich............................................................... 188Klonen ........................................................................... 256Kommentar
einzeiliger ................................................................... 24mehrzeiliger .............................................................. 24
Konfigurationsparameter ....................................... 99Konstante
mathematische .................................................... 400Konstruktor................................................................. 248
Vererbung ................................................................ 265Kontrollkästchen ...................................................... 130Konvertierung.............................................................. 36
explizite....................................................................... 37Kopfrechnen ..................................... 169, 288, 393, 457krsort() ............................................................................ 361ksort().............................................................................. 361
L
Ladezeitverringern................................................................. 559
lcg_value()................................................................... 409Lesbarkeit ........................................................................ 23LibreOffice .................................................................... 337like................................................................................... 189list..................................................................................... 372log_errors..................................................................... 302Logarithmus................................................................ 399Login .............................................................................. 420Logisches Oder ............................................................. 46Logisches Und ............................................................... 47Log-Tabelle .................................................................. 387Lotto ................................................................................ 411
M
Mac OS X....................................................................... 607
mail() ............................................................................... 541
Markierung.................................................................. 592
max() ............................................................................. 404
Maximum .................................................................... 403
maxlength .................................................................... 118
md5() ..................................................................... 308, 325
method............................................................................. 34
Methode ............................................................... 243, 245
abstrakte................................................................... 272
statische ................................................................... 269
2489-5.book Seite 616 Montag, 8. April 2013 1:47 13
Index
617
Microsoft Excel ........................................................... 337
Microsoft Vista ......................................................... 600
microtime() ........................................................ 375, 409
min() .............................................................................. 404
Minimum..................................................................... 403
mktime()............................................ 300, 381, 386, 442
Modularisierung .................................................... 75, 91
Modulo-Operator ............................................... 28, 410
mt_getrandmax() ..................................................... 408
mt_rand()..................................................................... 408
mt_srand()................................................................... 408
multiple ......................................................................... 132
Multiplikation............................................................... 28
MySQL ............................................................................ 178
Passwort ändern .................................................. 605
Ubuntu ..................................................................... 605
mysqli_affected_rows() ......................................... 206
mysqli_connect().............................................. 186, 235
mysqli_fetch_assoc() ............................................... 187
mysqli_fetch_row() .................................................. 373
mysqli_num_rows() ................................................. 187
mysqli_query() ........................................................... 187
mysqli_select_db() .................................................... 186
N
Nachkommastelle ....................................................... 26
name ...................................................... 118, 120, 128, 162
Namensregel ................................................. 25, 78, 180
new .................................................................................. 247
new FPDF....................................................................... 521
nodeValue.................................................................... 485
not.................................................................................... 189
Notice .............................................................................. 99
number_format() ...................................................... 103
Nummer automatisch erhöhen .......................... 561
Nummerierung
automatische ......................................................... 388
Nutzung von PHP
Anzahl .......................................................................... 17
Gründe.......................................................................... 18
O
Objekt ............................................................................. 243
als Rückgabewert................................................. 266
erzeugen ................................................................... 247
Kopie .......................................................................... 256
laden .......................................................................... 279
Lebensdauer ........................................................... 249
speichern.................................................................. 279
octdec() .......................................................................... 414
Oder
logisches..................................................................... 46
Oktalsystem ................................................................ 414
onreadystatechange ................................................ 477
onSubmit....................................................................... 137
open() ............................................................................. 477
opendir() ....................................................................... 346
Open-Source-Datenbank ........................................ 178
Operator
arithmetischer .......................................................... 27
logischer ............................................................ 46, 189
Rangordnung ..................................................... 28, 48
Vergleichs-............................................... 40, 188, 189
option ............................................................................ 130
Optionsschaltfeld...................................................... 126
Gruppe ....................................................................... 126
or...................................................................................... 189
ord() ................................................................................. 321
order by......................................................................... 189
Ostersonntag ....................................................... 111, 391
P
p........................................................................................ 595
Parameter
optionaler ................................................................. 253
parent............................................................................. 264
parent::__construct() .............................................. 265
password........................................................................ 122
Passwort............................................................... 308, 421
Datenbankserver .................................................. 186
Speicherung ............................................................ 308
verschlüsseln .......................................................... 308
Ausgabe..................................................................... 521
Bild skalieren ........................................................... 533
erzeugen................................................................... 520
externer Hyperlink ............................................... 536
Fließtext ................................................................... 524
Font ............................................................................. 523
Füllfarbe ................................................................... 528
Hyperlink .................................................................. 533
Hyperlink erzeugen ............................................. 534
Hyperlink in einem Bild ...................................... 537
2489-5.book Seite 617 Montag, 8. April 2013 1:47 13
Index
618
Hyperlink in einem Bildbereich ....................... 537
Hyperlink in einer Zelle ...................................... 536
Hyperlink, Zielpunkt ............................................ 535
Image-Map.............................................................. 533
Kopf- und Fußzeile ............................................... 529
Linie............................................................................ 537
Liniendicke ..................................................... 528, 538
Linienfarbe .............................................................. 528
Rechteck ................................................................... 537
Schreibposition .............................................. 531, 538
Schreibposition nach der Zelle ........................ 523
Schriftart .................................................................. 523
Schriftfarbe.............................................................. 525
Schriftgröße .................................................... 523, 525
Schriftschnitt ................................................. 523, 526
Seite erzeugen ......................................................... 521
Seitenanzahl ............................................................ 531
Seitenumbruch ....................................................... 531
Standard-Font ........................................................ 522
Tabelle ....................................................................... 526
unterstreichen ........................................................ 534
Zeilenhöhe ............................................................... 525
Zeilenumbruch...................................... 524, 525, 528
Zelle ............................................................................ 523
Zellenausrichtung................................................. 523
Zellenfüllung........................................................... 524
Zellengröße.............................................................. 523
Zellenrand................................................................ 523
PDF-Reader................................................................... 519
PDO ................................................................................. 459
PDOStatement............................................................ 461
PHP
Konfiguration ........................................................ 346
Ubuntu ..................................................................... 605
PHP Data Objects ....................................................... 459
PHP Hypertext Preprocessor................................... 18
php.ini ................................................ 301, 307, 346, 495
php_gd2.dll ................................................................. 494
phpinfo() ...................................................................... 602
PHPMailer .................................................................... 541
phpMyAdmin ..................................................... 178, 179
Internetnutzung .................................................... 234
Ubuntu ..................................................................... 606
Pizzabestellung .......................................................... 166
Platzhalter .................................................................... 189
Plausibilität ................................................................. 307
post.................................................................................... 34
Potenzrechnung ....................................................... 399
Preis ................................................................................... 19
Primärschlüssel .......................................................... 182
private ........................................................................... 246
Programm beenden.................................................. 173
Programmierstil ........................................................... 21
Programmierung
objektorientierte.................................................... 243
Programmpaket ........................................................ 305
protected ...................................................................... 246
Provider ......................................................................... 175
Proxy.............................................................................. 307
public ............................................................................. 246
Q
query()
PDO ............................................................................. 461
R
rad2deg()...................................................................... 404
radio ................................................................................ 126
Radiobutton ...................................................... 126, 200
Rahmen......................................................................... 596
rand()...................................................................... 62, 408
read ................................................................................. 329
readdir() ........................................................................ 346
readfile()......................................................................... 333
readonly................................................................ 118, 120
readystate ..................................................................... 477
Rechenoperator ............................................................ 27
Referenz ........................................................... 86, 88, 114
register globals........................................................... 307
Rekursiv .................................................................. 75, 349
REMOTE_ADDR ......................................................... 387
require .............................................................................. 78
require_once.................................................................. 78
reset ......................................................................... 34, 594
responseText .............................................................. 478
responseXML .............................................................. 485
return................................................................................ 85
JavaScript ................................................................. 138
rewind().......................................................................... 341
round() .......................................................................... 402
rows ................................................................................ 120
rsort() .............................................................................. 352
2489-5.book Seite 618 Montag, 8. April 2013 1:47 13
Index
619
S
Schleife............................................................................. 54
Abbruch ...................................................................... 65
bedingungsgesteuerte.................................... 62, 64
endlose ........................................................................ 57
geschachtelte ............................................................ 58
Schriftart ....................................................................... 152
Schriftgröße ................................................................. 152
SEEK_CUR .................................................................... 344
SEEK_END .................................................................... 344
SEEK_SET...................................................................... 344
Seitenquelltext ........................................................... 225
select ............................................................... 129, 132, 187
selected .......................................................................... 129
self................................................................................... 270
send() .............................................................................. 477
Separator ....................................................................... 313
serial............................................................................... 388
Serialisierung .................................................... 279, 288
serialize() ...................................................................... 280
Serverprogramm ......................................................... 19
Session .......................................................................... 306
Gültigkeit beenden .............................................. 307
session_cache_limiter() ......................................... 307
session_destroy()....................................................... 418
session_id() ................................................................. 420
session_regenerate_id()......................................... 307
session_set_cookie_params() ............................. 306
session_start()............................................................. 418
Session-ID ..................................................................... 419
regenerieren ........................................................... 307
Session-Management .............................................. 417
setcookie() ................................................................... 438
setRequestHeader().................................................. 480
show columns ............................................................. 231
show databases.......................................................... 230
show tables.................................................................. 230
shuffle()........................................................................... 411
Sicherheit ..................................................................... 305
Silence-Operator .............................................. 306, 550
similar_text()............................................................... 319
SimpleXML .................................................................. 463
simplexml_load_file() ............................................ 465
simplexml_load_string()........................................ 471
size .................................................................. 118, 162, 595
sort() ................................................................................ 352
SORT_NUMERIC ......................................................... 352
SORT_REGULAR......................................................... 352
SORT_STRING ............................................................. 352
Spiel .................................................................................. 64
sprintf() .......................................................................... 341
SQL ................................................................................... 178
SQL-Code
schädlicher .............................................................. 308
SQLite3........................................................................... 447
close() ........................................................................ 450
exec() ......................................................................... 450
query() ....................................................................... 450
SQLITE3_ASSOC ......................................................... 452
SQLite3Result ............................................................... 451
fetchArray().............................................................. 451
srand()............................................................ 62, 408, 413
Startwert ......................................................................... 56
stat()................................................................................ 344
status.............................................................................. 477
Stellenwertsystem .................................................... 414
str_replace()................................................................ 309
str_rot13() ..................................................................... 325
str_shuffle() ................................................................. 414
strcasecmp() ................................................................. 319
strcmp().......................................................................... 319
strftime()........................................................................ 377
Strict Standards......................................................... 300
String-Funktionen ................................................... 309
stristr() ............................................................................ 315
strlen() .......................................................................... 309
strpos()............................................................................ 317
strrchr() .......................................................................... 315
strrev() .......................................................................... 309
strrpos().......................................................................... 317
strstr() ............................................................................. 315
strtolower() ................................................................. 309
strtotime() .................................................................... 382
strtoupper() ................................................................ 309
strtr() ............................................................................. 309
submit ............................................................ 34, 135, 594
submit().......................................................................... 141
substr()............................................................................ 314
Subtraktion.................................................................... 28
Suchformular............................................................... 195
switch/case ..................................................................... 51
Systemvoraussetzungen.......................................... 20
Systemzeit
ermitteln ................................................................... 375
2489-5.book Seite 619 Montag, 8. April 2013 1:47 13
Index
620
T
Tabelle .................................................................... 177, 596
erzeugen .................................................................... 181
exportieren .............................................................. 237
Filterung ................................................................... 585
mehrspaltige........................................................... 596
Sortierung ................................................................ 584
Struktur...................................................................... 178
Tabellenzeile............................................................... 596
Tabellenzelle............................................................... 596
table ............................................................................... 596
target .............................................................................. 143
Tausendertrennzeichen.......................................... 104
td ..................................................................................... 596
textarea ......................................................................... 120
Texteingabefeld
einzeiliges ........................................................... 33, 118
mehrzeiliges ............................................................ 120
Textelement ................................................................. 117
Textfarbe........................................................................ 152
this................................................................................... 245
throw ................................................................................ 98
time() ..................................................................... 375, 386
Timestamp .......................................................... 344, 376
timestamp .................................................................... 561
title .................................................................................. 593
tr ...................................................................................... 596
true ........................................................................... 40, 138
TrueType-Fonts ......................................................... 499
try ...................................................................................... 98
TTF-Datei...................................................................... 500
type ........................................................................ 162, 595
U
Überladen ..................................................................... 253
Ubuntu ............................................................ 20, 22, 179,
186, 301, 337, 346, 447, 493, 519, 604
ucfirst() ......................................................................... 309
ucwords() ..................................................................... 309
Umlaut ............................................................................. 26
darstellen .................................................................. 591
Und
logisches ..................................................................... 47
Unendlich .................................................................... 405
Ungleich ................................................................. 40, 188
unserialize().................................................................. 281
unset()............................................................................ 307
Unterstrich .................................................................... 26
update.................................................................... 210, 222
Upload ............................................................................ 159
URI
wechseln ................................................................... 521
URL
Daten anhängen........................................... 153, 306
V
Value ................................................................................. 72
value........................................................ 118, 128, 132, 135
var ................................................................................... 246
Variable ............................................................................ 25
Existenz ................................................... 132, 150, 205
Existenz prüfen ...................................................... 102
globale ........................................................................ 90
Gültigkeit................................................................. 307
Gültigkeitsbereich .................................................. 90
initialisieren ........................................................... 307
lokale........................................................................... 90
superglobale............................................................. 90
unerlaubter Zugriff .............................................. 307
Vererbung ..................................................................... 261
Vergleichsoperator..................................................... 40
!==................................................................................ 318
=== .............................................................................. 318
Verkettung..................................................................... 30
Verknüpfung ................................................................ 46
Verschlüsselung ................................................ 322, 325
Verzeichnis
aktuellen Namen ermitteln.............................. 349
Informationen ermitteln................................... 346
lesen........................................................................... 348
öffnen........................................................................ 348
schließen .................................................................. 348
wechseln .................................................................. 348
Verzeichnisschutz .................................................... 234
Verzweigung ................................................................. 40
mehrfache ............................................................ 49, 51
mit HTML ................................................................... 53
verschachtelte ......................................................... 49
2489-5.book Seite 620 Montag, 8. April 2013 1:47 13
Index
621
W
Warenkorb................................................................... 426
Warning .......................................................................... 99
Webcounter ................................................................ 339
Webserver
Hauptverzeichnis .................................................... 24
Webshop ...................................................................... 426
while.................................................................................. 62
Wiederholung ............................................................... 54
Wildcard ........................................................................ 189
Winkelfunktion ......................................................... 404
write ............................................................................... 329
Würfel............................................................................... 62
Wurzel ........................................................................... 399
www-data .................................................................... 604
X
XAMPP ............................................................ 20, 22, 179,
186, 301, 346, 447, 599, 606, 608
Control Panel ........................................................ 600
XML ................................................................................ 463
Ajax ............................................................................ 475
senden ....................................................................... 482
XML-Datei
hierarchische Struktur ....................................... 464
XMLHttpRequest .............................................. 475, 477
XML-Zeichenkette ..................................................... 471
Z
Zahl ................................................................................... 26
formatierte Ausgabe ........................................... 103
Ganzzahlkonvertierung..................................... 402
Nachkommastelle ................................................ 104
Prüffunktionen ...................................................... 405
Zahlenbereich ............................................................ 406
Zeichencodierung ...................................................... 321
Zeichenkette.................................................................. 30
drehen ...................................................................... 309
Länge ........................................................................ 309
mischen ..................................................................... 414
Teile ersetzen......................................................... 309
Teile extrahieren ............................................ 314, 315
umwandeln............................................................ 309
Umwandlung ........................................................... 36
vergleichen ............................................................... 319
Zeichen suchen ....................................................... 317
zusammenfügen .................................................... 313
Zeichenkettenfunktionen .................................... 309
Zeilenumbruch .................................................. 225, 334
nicht erlaubter .......................................................... 31
Zeitangabe
formatieren............................................................. 345
Zeitstempel................................................................... 561
Zeitzone
einstellen.................................................................. 345
Zufallszahlengenerator................................... 62, 408
Zugriffszähler..................................................... 339, 418
Zurücksetzen ........................................................ 34, 135
2489-5.book Seite 621 Montag, 8. April 2013 1:47 13