Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
23
TEIL I Vorbereitungen
29
1 Allgemeines zu PHP
31
1.1 Geschichte von PHP
31
1.2 Erfolg und Einsatz
32
1.3 Das Konzept von PHP
34
1.4 Die wichtigsten Neuerungen in PHP 7
36
1.5 Die wichtigsten Neuerungen in PHP 5.4, 5.5 und 5.6
37
1.6 Neuerungen in PHP 5.3
38
1.7 Neuerungen in PHP 5.1
39
1.8 Versionen und Anlaufstelle
40
2 Installation
43
2.1 PHP installieren
43
2.1.1 Aufbau von PHP
45
2.1.2 Windows
46
2.1.3 OS X
61
2.1.4 Linux
66
2.2 PEAR installieren
74
2.2.1 PEAR installieren
75
2.2.2 PEAR2
77
2.2.3 PEAR-Pakete ohne Installation
79
3 Test und Hilfe
81
3.1 Häufige Fehler
81
3.1.1 Die Seite kann nicht angezeigt werden
81
3.1.2 Die Webseite wurde nicht gefunden/File not found
83
3.1.3 Server nicht gefunden
84
3.1.4 Unable to initialize module
85
3.1.5 Modul nicht gefunden
86
3.1.6 Der Browser öffnet ein Downloadfenster
87
3.1.7 No input file specified (oder so ähnlich)
88
3.1.8 Call to undefined function
89
3.1.9 Internal Server Error
90
3.1.10 VCRUNTIME140.DLL fehlt
91
3.2 Hilfsquellen
91
TEIL II Einstieg in PHP
93
4 Grundlagen der Sprache
95
4.1 PHP in HTML
95
4.1.1 Kommentare
96
4.1.2 Anweisungen
97
4.1.3 Externe Datei
98
4.2 Ausgabe mit PHP
102
4.2.1 Anführungszeichen
103
4.3 Variablen
104
4.3.1 Datentypen
105
4.3.2 Benennung
107
4.3.3 Variable Variablen
108
4.3.4 Variablen ausgeben
109
4.3.5 Nützliches und Hilfreiches
111
4.3.6 Vordefinierte Variablen
116
4.4 Konstanten
116
5 Programmieren
119
5.1 Operatoren
119
5.1.1 Arithmetische Operatoren
119
5.1.2 Vergleichsoperatoren
123
5.1.3 Logische Operatoren
130
5.1.4 Binärzahlen und bitweise Operatoren
132
5.1.5 Operatoren, die aus der Reihe tanzen
136
5.1.6 Rangfolge der Operatoren
140
5.2 Fallunterscheidungen
142
5.2.1 »if«
142
5.2.2 »switch«
149
5.3 Schleifen
153
5.3.1 »for«
153
5.3.2 »while«
158
5.3.3 »do-while«
164
5.4 Sprünge
165
6 Funktionen und Sprachkonstrukte
167
6.1 Funktionen
167
6.1.1 Parameter
168
6.1.2 Gültigkeit von Variablen
172
6.1.3 Rückgabewert
174
6.1.4 Funktionsnamen in Variablen
177
6.1.5 Anonyme Funktionen
178
6.1.6 Rekursive Funktionen
179
6.1.7 Typdeklarationen
182
6.1.8 Hilfreiches und Nützliches
184
6.1.9 Funktionen von PHP
187
6.2 Sprachkonstrukte
189
6.2.1 Ausgabe
190
7 Strings
197
7.1 Verbinden
197
7.2 Teilen und Zusammenfügen
198
7.2.1 Auf Zeichen zugreifen
198
7.2.2 Gleichmäßig unterbrechen
198
7.2.3 Zeilenumbrüche
200
7.2.4 Teilen in Strings
201
7.2.5 Strings und Arrays
203
7.3 Groß- und Kleinschreibung
208
7.4 Beschneiden
211
7.4.1 Zeichen ausschneiden
211
7.4.2 Whitespaces entfernen
213
7.5 Suchen und Ersetzen
213
7.5.1 Suchen
213
7.5.2 Ersetzen
217
7.6 Sonderzeichen, HTML etc.
220
7.6.1 Entwerten – für Datenbanken
220
7.6.2 Entwerten – für reguläre Ausdrücke
221
7.6.3 HTML
222
7.6.4 URLs
227
7.7 Vergleichen
228
7.7.1 Vergleichsfunktionen
228
7.7.2 Ähnlichkeiten und Unterschiede
229
7.7.3 Aussprache
230
7.8 Hilfreiches und Nützliches
230
7.8.1 ASCII und Umwandlung
231
7.8.2 Unicode-Codepoint
231
7.8.3 Verschlüsselung
232
7.8.4 Umdrehen
233
8 Arrays
235
8.1 Grundlagen
235
8.1.1 Arrays erstellen
235
8.1.2 Elemente hinzufügen und ändern
237
8.1.3 Elemente löschen
238
8.1.4 Assoziative Arrays
239
8.1.5 Kurzschreibweise ab PHP 5.4
239
8.1.6 Multidimensionale Arrays
240
8.2 Arrays und Schleifen
240
8.2.1 »for«
240
8.2.2 »foreach«
241
8.2.3 Funktionen zur Iteration
244
8.3 Untersuchen
246
8.4 Transformieren
247
8.4.1 Hinzufügen und Entfernen
247
8.4.2 Löschen und Ersetzen
248
8.4.3 Verbinden
250
8.4.4 Variablen und Arrays
252
8.4.5 Dereferenzierung
254
8.4.6 Umwandlung in Parameter
255
8.5 Suchen und Sortieren
256
8.5.1 Suchen
256
8.5.2 Sortieren
257
8.6 Superglobale Arrays
258
9 Mathematische und Datumsfunktionen
265
9.1 Mathe
265
9.1.1 Basics
265
9.1.2 Konstanten
267
9.1.3 Zahlen konvertieren
268
9.1.4 Zufallszahlen
270
9.1.5 Maximal, minimal und Runden
272
9.1.6 Bogenmaß und mehr
273
9.1.7 Höhere Genauigkeit
274
9.2 Datum
276
9.2.1 Aktuelles Datum
276
9.2.2 »DateTime«
282
9.2.3 Beliebige Datumswerte
283
9.2.4 Zeitstempel
284
9.2.5 Datum formatieren
288
9.2.6 Countdown – mit Daten rechnen
293
10 Reguläre Ausdrücke
297
10.1 Grundlagen
297
10.2 POSIX
299
10.3 Perl-kompatibel
301
10.3.1 »preg_match()«
301
10.3.2 Weitere Funktionen für Perl-komatible
305
10.3.3 Ersetzungsstrings wiederverwenden
306
10.3.4 Modifikatoren für Suchmuster
307
10.4 Anwendungsbeispiele
307
10.4.1 Postleitzahlen
307
10.4.2 Telefon- und Faxnummern
308
10.4.3 Links filtern
309
11 Objektorientiert programmieren
311
11.1 Klassen und Objekte – Grundbegriffe
312
11.1.1 Klassen und Objekte in PHP
313
11.1.2 Eigenschaften
314
11.1.3 Methoden
316
11.1.4 Vererbung
321
11.2 Fortgeschrittenes
324
11.2.1 Wert oder Referenz
324
11.2.2 Konstruktor
325
11.2.3 Destruktor
326
11.2.4 Privat, geschützt etc.
327
11.2.5 Interfaces
333
11.2.6 Late Static Binding
335
11.2.7 Abstrakte Klassen
336
11.2.8 Anonyme Klassen
337
11.2.9 Konstanten
339
11.2.10 Überladen
340
11.2.11 Traits
345
11.3 Hilfreiches und Nützliches
348
11.3.1 Fehlerlevel
349
11.3.2 »__autoload()«
351
11.3.3 »__METHOD__«
352
11.3.4 »__toString()«
353
11.3.5 Klassentypen und »instanceof«
354
11.3.6 Objekte vergleichen
356
11.3.7 Objekte serialisieren
357
11.3.8 Objekte automatisiert auslesen
360
11.3.9 Iteration
361
11.3.10 Reflection API
363
11.3.11 SPL
366
11.4 Migration von PHP 4 auf 5/7
375
12 Namespaces
377
12.1 Warum Namespaces?
378
12.2 Mit Namespaces arbeiten
379
12.2.1 Namespaces verwenden
380
12.2.2 Den aktuellen Namespace ermitteln
381
12.2.3 Namespaces per Alias
382
13 Entwurfsmuster: MVC & Co.
385
13.1 Zend Framework
386
13.2 MVC/MPS
388
13.3 Singleton/Einzelstück
393
13.4 Factory/Fabrik
395
TEIL III Webtechniken
399
14 Formulare
401
14.1 Vorbereitungen
401
14.2 Formulare mit PHP
404
14.2.1 Die gute alte Zeit
405
14.2.2 Versandmethoden
408
14.2.3 Textfeld(er)
411
14.2.4 Radiobuttons
413
14.2.5 Checkboxen
415
14.2.6 Auswahllisten
416
14.2.7 Versand feststellen
420
14.3 Formularvalidierung
423
14.3.1 Textfeld(er)
424
14.3.2 Radiobuttons
426
14.3.3 Checkboxen
427
14.3.4 Auswahllisten
428
14.3.5 Detailliertere Fehlermeldung
433
14.4 Vorausfüllung
437
14.4.1 Vorbereitungen
438
14.4.2 Textfelder
439
14.4.3 Radiobuttons
440
14.4.4 Checkboxen
440
14.4.5 Auswahllisten
441
14.5 Dateiuploads
448
14.6 Anwendungsbeispiele
452
14.6.1 JavaScript-Formularprüfung
452
14.6.2 Bildergalerie
457
14.7 Einstellungen
459
15 Cookies
461
15.1 Vorbereitungen
461
15.2 Fakten und Hintergründe
463
15.2.1 Was ist ein Cookie?
464
15.2.2 Einschränkungen
465
15.2.3 Der gläserne Surfer?
465
15.3 Mit Cookies in PHP arbeiten
466
15.3.1 Cookies setzen
466
15.3.2 Cookies auslesen
472
15.3.3 Cookies löschen
475
15.3.4 »Neue« Cookies
478
15.4 Cookie-Test
481
15.5 Abschließende Überlegungen
483
16 Sessions
487
16.1 Vorbereitungen
488
16.2 Fakten, Hintergründe und Konfiguration
489
16.2.1 Daten behalten
489
16.2.2 Performance
491
16.3 Mit Sessions in PHP arbeiten
493
16.3.1 Daten schreiben
493
16.3.2 Daten auslesen
495
16.3.3 Daten löschen
497
16.3.4 Daten behalten
498
16.3.5 Sessions konfigurieren
500
16.4 Geschützter Bereich
500
16.5 Sessions in Datenbanken
502
16.6 Sicherheitsbedenken
510
17 E-Mail
513
17.1 Vorbereitungen
513
17.2 Mails mit PHP versenden
518
17.2.1 Standardmails
518
17.2.2 MIME-Mails
523
17.2.3 IMAP und POP
530
TEIL IV Datenbanken
533
18 SQL
535
18.1 Datenbanken und Tabellen anlegen
536
18.1.1 Primärschlüssel
536
18.1.2 Datentypen
537
18.2 Daten eintragen
539
18.3 Daten abfragen
540
18.4 Daten aktualisieren
544
18.5 Daten löschen
544
18.6 Besonderheiten
545
18.6.1 Relationales Datenbankdesign
545
18.6.2 Joins
547
18.6.3 Aggregatfunktionen
548
18.6.4 Transaktionen
549
18.6.5 Stored Procedures
551
19 PDO
553
19.1 Vorbereitungen
554
19.2 Datenbankzugriff mit PDO
556
19.2.1 Verbindungsaufbau
556
19.2.2 Abfragen
557
19.2.3 Rückgabewerte
560
19.2.4 Besonderheiten
562
19.3 Gästebuch
563
19.3.1 Tabelle anlegen
563
19.3.2 Daten eintragen
564
19.3.3 Daten ausgeben
566
19.3.4 Daten löschen
567
19.3.5 Daten bearbeiten
570
20 MySQL
573
20.1 Vorbereitungen
574
20.2 Datenbankzugriff mit MySQL
581
20.2.1 Verbindungsaufbau
581
20.2.2 Abfragen
582
20.2.3 Rückgabewerte
587
20.2.4 Besonderheiten
591
20.3 Alte MySQL-Versionen
604
20.3.1 Verbindungsaufbau
604
20.3.2 Abfragen
605
20.3.3 Rückgabewerte
606
20.4 Anwendungsbeispiel
607
20.4.1 Tabelle anlegen
607
20.4.2 Daten eintragen
608
20.4.3 Daten ausgeben
610
20.4.4 Daten löschen
611
20.4.5 Daten bearbeiten
613
20.5 Einstellungen
616
21 SQLite
617
21.1 Vorbereitungen
618
21.2 Datenbankzugriff mit SQLite
619
21.2.1 Verbindungsaufbau
619
21.2.2 Abfragen
620
21.2.3 Rückgabewerte
623
21.2.4 Besonderheiten
626
21.2.5 Migration von altem Code
630
21.3 Anwendungsbeispiel
632
21.3.1 Tabelle anlegen
632
21.3.2 Daten eintragen
633
21.3.3 Daten ausgeben
634
21.3.4 Daten löschen
635
21.3.5 Daten bearbeiten
637
22 Microsoft SQL Server
641
22.1 Vorbereitungen
641
22.2 Microsoft SQL Server Driver for PHP
643
22.2.1 Verbindungsaufbau
646
22.2.2 Abfragen
647
22.2.3 Rückgabewerte
647
22.2.4 Besonderheiten
649
22.3 Anwendungsbeispiel
653
22.3.1 Tabelle anlegen
653
22.3.2 Daten eintragen
654
22.3.3 Daten ausgeben
656
22.3.4 Daten löschen
657
22.3.5 Daten bearbeiten
659
23 Oracle
663
23.1 Vorbereitungen
663
23.2 Datenbankzugriff mit Oracle
668
23.2.1 Verbindungsaufbau
668
23.2.2 Abfragen
669
23.2.3 Rückgabewerte
672
23.2.4 Besonderheiten
675
23.3 Anwendungsbeispiel
678
23.3.1 Tabelle anlegen
678
23.3.2 Daten eintragen
679
23.3.3 Daten ausgeben
680
23.3.4 Daten löschen
681
23.3.5 Daten bearbeiten
683
24 PostgreSQL
685
24.1 Vorbereitungen
685
24.2 Datenbankzugriff mit PostgreSQL
688
24.2.1 Verbindungsaufbau
689
24.2.2 Abfragen
690
24.2.3 Rückgabewerte
692
24.2.4 Besonderheiten
695
24.3 Anwendungsbeispiel
701
24.3.1 Tabelle anlegen
701
24.3.2 Daten eintragen
702
24.3.3 Daten ausgeben
704
24.3.4 Daten löschen
705
24.3.5 Daten bearbeiten
707
24.4 Einstellungen
709
25 MongoDB
711
25.1 Vorbereitungen
711
25.2 Datenbankzugriff mit MongoDB
716
25.2.1 Verbindungsaufbau
716
25.2.2 Einfügen
717
25.2.3 Abfragen und Rückgabewerte
719
25.2.4 Aktualisieren
721
25.2.5 Löschen
722
25.3 Anwendungsbeispiel
722
25.3.1 Datenspeicher anlegen
722
25.3.2 Daten eintragen
723
25.3.3 Daten ausgeben
725
25.3.4 Daten löschen
725
25.3.5 Daten bearbeiten
727
25.4 Einstellungen
730
25.5 MongoDB für PHP 7
730
TEIL V Kommunikation
731
26 Dateien
733
26.1 Vorbereitungen
733
26.2 Dateihandling mit PHP
734
26.2.1 Mit Dateien arbeiten
735
26.2.2 Mit dem Dateisystem arbeiten
740
26.3 Anwendungsbeispiele
745
26.3.1 Gästebuch
746
26.3.2 Dateibrowser
751
26.4 Einstellungen
753
27 Verbindung nach außen
755
27.1 Vorbereitungen
755
27.2 Verbindung nach außen mit PHP
756
27.2.1 Streams
756
27.2.2 HTTP-Streams
758
27.2.3 PHP-Streams
763
27.2.4 Kompressions-Streams
767
27.3 Anwendungsbeispiele
770
27.3.1 Textversion von Webseiten
770
27.3.2 Onlinekomprimierer
772
28 Web Services
775
28.1 Vorbereitungen
775
28.1.1 Web-Services-Grundlagen
775
28.1.2 Installation
781
28.2 nuSOAP
783
28.2.1 Server
783
28.2.2 Client
785
28.2.3 WSDL
786
28.2.4 Fazit
791
28.3 PHP-SOAP
791
28.3.1 Server
791
28.3.2 Client
792
28.3.3 WSDL
794
28.3.4 Fazit
795
28.4 REST
795
28.5 UDDI
798
29 JavaScript
801
29.1 Vorbereitungen
802
29.2 JavaScript mit PHP verbinden
803
29.2.1 PHP-Variablen mit JavaScript auslesen
803
29.2.2 JavaScript-Variablen mit PHP auslesen
807
29.3 Ajax
807
29.4 WebSockets
812
29.4.1 Server
813
29.4.2 Client
817
TEIL VI Fremdformate
821
30 XML
823
30.1 Vorbereitungen
823
30.1.1 XML-Grundlagen
823
30.1.2 Installation
829
30.2 XML-Zugriff
829
30.2.1 SAX
829
30.2.2 SimpleXML
834
30.2.3 DOM-Zugriff
838
30.2.4 Validierung
844
30.2.5 XSLT
846
30.3 XMLReader und XMLWriter
848
30.3.1 XMLReader
848
30.3.2 XMLWriter
849
30.4 EXIF
851
30.4.1 Vorbereitung
851
30.4.2 Umsetzung
851
31 Grafiken mit PHP
857
31.1 Vorbereitungen
857
31.1.1 Installation
857
31.2 GD 2 im Einsatz
858
31.2.1 Grundgerüst
858
31.2.2 Text
861
31.2.3 Formen
863
31.2.4 Linien und Stile
865
31.2.5 Ausgabe der Bilder
866
31.2.6 Bildbearbeitung
867
31.2.7 Dynamisches Diagramm
872
31.3 Die Alternativen
878
31.3.1 ImageMagick
878
31.3.2 GMagick
878
31.3.3 NetPBM
879
32 PDF mit PHP
881
32.1 Vorbereitung
882
32.1.1 FPDF
882
32.1.2 PDFlib
882
32.1.3 Haru
883
32.2 FPDF
883
32.2.1 Grundlagen
883
32.2.2 Zeichnen
885
32.3 PDFlib
886
32.3.1 Grundlagen
886
32.3.2 Zeichnen
889
32.3.3 Tortendiagramm mit PDFlib
893
32.3.4 Besonderheiten
896
32.4 Haru
897
32.5 Andere Bibliotheken
899
32.5.1 Bibliotheken
899
TEIL VII Administration und Sicherheit
901
33 Sicherheit
903
33.1 Benutzereingaben
905
33.2 XSS
908
33.3 SQL Injection
912
33.4 Versteckte Felder?
915
33.5 Input-Filter
918
33.6 Cross-Site Request Forgery
921
33.7 Screen Scraping und CAPTCHAs
926
33.8 Passwörter verschlüsseln
931
33.9 Fazit
935
34 Authentifizierung
937
34.1 Apache-Authentifizierung
938
34.2 IIS-Authentifizierung
942
34.3 HTTP-Authentifizierung von Hand
944
34.4 Fazit
946
35 Konfigurationsmöglichkeiten in der »php.ini«
949
35.1 Wo konfigurieren?
949
35.1.1 Speicherort
949
35.1.2 Andere Konfigurationsdateien
950
35.2 Was konfigurieren?
953
35.3 Fazit
959
36 Fehlersuche und Debugging
961
36.1 Debugging von Hand
963
36.2 Debugging mit DBG
965
36.3 Debugging mit Xdebug
969
36.4 Auflösung
974
37 Apache-Funktionen
977
37.1 Vorbereitungen
977
37.2 Anwendungsbeispiele
978
37.2.1 Informationen über Apache
978
37.2.2 HTTP-Header auslesen
979
37.2.3 URI-Informationen
981
37.2.4 Andere Servertechnologien einbinden
982
37.2.5 Apache-Prozess beenden
984
38 Composer
985
38.1 Composer installieren
985
38.2 Pakete per Composer installieren
988
38.3 Eigenen Code für Composer anpassen
991
39 PHP-Erweiterungen
995
39.1 Programmieren
996
39.2 Kompilieren
1002
39.3 Testen
1005
40 Zu PHP beitragen
1009
40.1 Patches für PHP
1009
40.1.1 Bugfix
1010
40.1.2 Neues Feature
1015
40.2 Weitere Möglichkeiten
1017
Index
1019