Nur noch 1 verfügbar!
Versandbereit in 1-2 Werktagen
zzgl.
Nur noch 1 verfügbar!
Versandbereit in 1-2 Werktagen
zzgl.
Handgeprüfte Gebrauchtware
Bis zu 50 % günstiger als neu
Der Umwelt zuliebe
Technische Daten
Erscheinungsdatum
28.06.2005
Sprache
Deutsch
EAN
9783897214095
Herausgeber
O'Reilly
Sonderedition
Nein
Autor
David Sklar, Adam Trachtenberg, Ulrich Speidel, Stephan Schmidt
Seitenanzahl
794
Auflage
2
Einbandart
Taschenbuch
Schlagwörter
PHP, Web, Webdevelopment, Webentwicklung, MySQL
Inhaltsverzeichnis
Inhaltsverzeichnis
Einleitung XV
1
Strings 1
1.1 Auf Teil-Strings zugreifen 4
1.2 Teile von Strings ersetzen 5
1.3 Einen String zeichenweise verarbeiten 6
1.4 Einen String wort- oder zeichenweise umkehren 8
1.5 Tabulatoren expandieren und komprimieren 8
1.6 Die Groß- und Kleinschreibung in Texten ändern 10
1.7 Funktionen und Ausdrücke in Strings interpolieren 12
1.8 Leerzeichen aus einem String entfernen 13
1.9 Kommaseparierte Daten zerlegen 14
1.10 Begrenzte Daten mit fester Länge zerlegen 15
1.11 Strings aufteilen 18
1.12 Text an bestimmten Zeilenlängen umbrechen 20
1.13 Binärdaten in einem String speichern 22
2
Zahlen 25
2.1 Prüfen, ob ein String eine gültige Zahl enthält 26
2.2 Fließkommazahlen vergleichen 27
2.3 Fließkommazahlen runden 28
2.4 Mit Bereichen von Integer-Zahlen arbeiten 29
2.5 Zufallszahlen innerhalb eines Bereichs generieren 30
2.6 Verzerrte Zufallszahlen generieren 32
2.7 Logarithmen berechnen 33
2.8 Potenzen berechnen 34
2.9 Zahlen formatieren 35
2.10 Den Plural korrekt ausgeben 36
2.11 Trigonometrische Funktionen berechnen 37
2.12 Trigonometrische Funktionen mit Graden anstelle von Bogenmaßen berechnen 38
2.13 Mit sehr großen oder kleinen Zahlen arbeiten 39
2.14 Zwischen Zahlensystemen konvertieren 40
2.15 Mit anderen Zahlen als Dezimalzahlen rechnen 41
3
Datum und Zeit 43
3.1 Das aktuelle Datum und die aktuelle Zeit feststellen 45
3.2 Datums- und Zeitbestandteile in einen Epochen-Zeitstempel konvertieren 47
3.3 Einen Epochen-Zeitstempel in Zeit- und Datumsbestandteile konvertieren 49
3.4 Datum oder Zeit in einem bestimmten Format ausgeben 50
3.5 Die Differenz zwischen zwei Datumswerten berechnen 54
3.6 Den Abstand zwischen zwei Datumswerten über Julianische Tage ermitteln 56
3.7 Den Tag der Woche, des Monats, des Jahres oder die Kalenderwoche des Jahres ermitteln 57
3.8 Ein Datum validieren 59
3.9 Datums- und Zeitwerte aus Strings lesen 61
3.10 Addition und Subtraktion mit einem Datum 63
3.11 Die Zeit mit Zeitzonen berechnen 64
3.12 Die Sommerzeit berücksichtigen 69
3.13 Zeitangaben mit hoher Genauigkeit generieren 70
3.14 Zeiträume generieren 71
3.15 Andere Kalender als den Gregorianischen verwenden 73
3.16 Programm: Kalender 74
4
Arrays 77
4.1 Ein Array anlegen, das nicht mit dem Element 0 beginnt 80
4.2 Mehrere Array-Elemente unter einem Schlüssel speichern 81
4.3 Ein Array mit einer Folge von Integer-Werten initialisieren 83
4.4 Ein Array durchlaufen 83
4.5 Elemente aus einem Array löschen 86
4.6 Die Größe eines Arrays ändern 88
4.7 Ein Array an ein anderes anfügen 90
4.8 Ein Array in einen String verwandeln 92
4.9 Ein Array mit Kommata ausgeben 94
4.10 Prüfen, ob sich ein Schlüssel in einem Array befindet 95
4.11 Prüfen, ob sich ein Element in einem Array befindet 96
4.12 Die Position eines Elements in einem Array feststellen 97
4.13 Elemente finden, die einer bestimmten Prüfung standhalten 98
4.14 Das Array-Element mit dem größten oder kleinsten Wert finden 100
4.15 Ein Array umkehren 101
4.16 Ein Array sortieren 101
4.17 Ein Array über ein berechnetes Feld sortieren 103
4.18 Mehrere Arrays sortieren 105
4.19 Ein Array mit Hilfe einer Methode statt einer Funktion sortieren 107
4.20 Ein Array in eine zufällige Reihenfolge bringen 108
4.21 Einen Kartenstapel mischen 109
4.22 Doppelte Elemente aus einem Array entfernen 110
4.23 Die Vereinigungs-, Schnitt- oder Differenzmenge zweier Arrays ermitteln 111
4.24 Alle Elementkombinationen eines Arrays finden 113
4.25 Alle Permutationen eines Arrays finden 115
4.26 Programm: Ein Array horizontal angeordnet in einer HTML-Tabelle ausgeben 118
5
Variablen 121
5.1 Die Verwechslung von == und = vermeiden 122
5.2 Einen Vorgabewert festlegen 123
5.3 Werte ohne Hilfe von temporären Variablen austauschen 124
5.4 Einen dynamischen Variablennamen erzeugen 125
5.5 Statische Variablen verwenden 126
5.6 Variablen in mehreren Prozessen gemeinsam verwenden 128
5.7 Komplexe Daten als String kapseln 130
5.8 Variableninhalte als Strings ausgeben 131
6
Funktionen 135
6.1 Auf Funktionsparameter zugreifen 136
6.2 Vorgabewerte für Funktionsparameter festlegen 137
6.3 Werte als Referenzen übergeben 139
6.4 Benannte Parameter verwenden 140
6.5 Funktionen mit einer variablen Anzahl von Argumenten verwenden 142
6.6 Werte per Referenz zurückgeben 144
6.7 Mehr als einen Wert zurückgeben 145
6.8 Bestimmte Rückgabewerte überspringen 147
6.9 Fehlermeldungen zurückgeben 148
6.10 Variable Funktionen aufrufen 150
6.11 Innerhalb einer Funktion auf eine globale Variable zugreifen 151
6.12 Dynamische Funktionen erzeugen 153
6.13 Objekt-Datentypen für Funktionsparameter vorschreiben 153
7
Klassen und Objekte 155
7.1 Objekte instanziieren 161
7.2 Objekte kopieren (klonen) 162
7.3 Ein Objekt durch eine Unterklasse erweitern 164
7.4 Auf eine überschriebene Methode zugreifen 166
7.5 Eigenschaften und Methoden verstecken 168
7.6 Objekt-Konstruktoren definieren 170
7.7 Ein Objekt zerstören 172
7.8 Eigenschaften mit _ _set() und _ _get() überladen 173
7.9 Schreib- oder lesegeschützte Eigenschaften implementieren 176
7.10 Methoden mit _ _call() überladen 178
7.11 Methoden und Eigenschaften einer Klasse ermitteln 180
7.12 Ein Objekt wie ein Array verwenden 182
7.13 Polymorphe Methoden verwenden 184
7.14 Objekt-Schnittstellen durch Interfaces standardisieren 186
7.15 Einem Basisobjekt zusätzliche Eigenschaften hinzufügen 189
7.16 Eine Klasse dynamisch erzeugen 190
7.17 Ein Objekt dynamisch instanziieren 191
8
Effizienter Umgang mit Daten 193
8.1 Über die Eigenschaften eines Objekt iterieren 195
8.2 Einfache Objekt-Iteration mit IteratorAggregate und ArrayObject 196
8.3 Einen eigenen Iterator implementieren 198
8.4 Einen eigenen Wrapper für Streams schreiben 202
8.5 Einen Stream filtern 206
8.6 Eigene Filter schreiben 207
9
Fehlerbehandlung mit Exceptions 210
9.1 PHP-Fehler- und Warnmeldungen in Ausnahmen umwandeln 212
9.2 Ausnahmen abfangen 213
9.3 Eigene Ausnahmen werfen 214
9.4 Klassenabhängiges Exception-Handling 216
10
Web-Grundlagen 218
10.1 Cookies setzen 219
10.2 Cookie-Werte lesen 221
10.3 Cookies löschen 222
10.4 Zu einer anderen Adresse umleiten 223
10.5 Sitzungen verfolgen 224
10.6 Sessions in einer Datenbank speichern 225
10.7 Verschiedene Browser erkennen 229
10.8 Einen GET-Query-String bilden 231
10.9 HTTP-Basic-Authentifizierung einsetzen 233
10.10 Cookie-Authentifizierung verwenden 235
10.11 Ausgaben vorzeitig an den Browser senden 238
10.12 Ausgaben an den Browser zwischenspeichern 239
10.13 Web-Ausgaben mit gzip komprimieren 240
10.14 Fehlermeldungen vor Anwendern verbergen 241
10.15 Einstellungen zur Fehlerbehandlung vornehmen 242
10.16 Eine benutzerdefinierte Funktion zur Fehlerbehandlung verwenden 244
10.17 Fehler protokollieren 246
10.18 Den Fehler 'headers already sent' vermeiden 247
10.19 Debug-Informationen protokollieren 248
10.20 Umgebungsvariablen lesen 251
10.21 Umgebungsvariablen setzen 252
10.22 Konfigurationsvariablen lesen 253
10.23 Konfigurationsvariablen setzen 254
10.24 Innerhalb von Apache kommunizieren 255
10.25 Code-Profile generieren 257
10.26 Geänderte Dateien herunterladen und unveränderte vom Browser cachen lassen 260
10.27 Programm: (De-)Aktivator für Website-Konten 263
10.28 Programm: Störungsprüfer 265
11
Formulare 272
11.1 Formulareingaben verarbeiten 274
11.2 Formulareingaben prüfen 276
11.3 Mit mehrseitigen Formularen arbeiten 278
11.4 Formulare mit erhaltenen Informationen und Fehlermeldungen erneut anzeigen 281
11.5 Mehrfaches Absenden desselben Formulars verhindern 284
11.6 Hochgeladene Dateien verarbeiten 286
11.7 Die Formularverarbeitung durch PHP absichern 288
11.8 Steuerzeichen in Benutzerdaten durch Escape-Sequenzen ersetzen 290
11.9 Mit Formularvariablen arbeiten, deren Name einen Punkt enthält 291
11.10 Formularelemente mit Mehrfachoptionen verwenden 292
11.11 Drop-down-Menüs auf Basis des aktuellen Datums erzeugen 294
12
Zugriff auf Datenbanken 296
12.1 Textdateien als Datenbanken verwenden 303
12.2 DBM-Datenbanken verwenden 304
12.3 Eine SQLite-Datenbank einrichten 308
12.4 Die Verbindung mit einer SQL-Datenbank herstellen 310
12.5 Eine SQL-Datenbank abfragen 312
12.6 Zeilen ohne Schleifen einlesen 314
12.7 Daten in einer SQL-Datenbank verändern 316
12.8 Abfragen effizient wiederholen 317
12.9 Feststellen, wie viele Zeilen eine Abfrage zurückgegeben hat 319
12.10 Behandlung von Anführungszeichen 320
12.11 Debug-Informationen und Fehler protokollieren 322
12.12 Eindeutige Kennzeichen automatisch zuweisen 325
12.13 Abfragen programmgesteuert erstellen 326
12.14 Paginierte Links für eine Reihe von Datensätzen generieren 331
12.15 Abfragen und Ergebnisse zwischenspeichern 335
12.16 Eine SSL-Verbindung zu einer MySQLi-Datenbank herstellen 337
12.17 Programm: Ein Diskussionsforum speichern 339
13
Web-Automatisierung 347
13.1 Eine URL mit der GET-Methode abrufen 349
13.2 Eine URL mit der POST-Methode abrufen 351
13.3 Eine URL mit Cookies abrufen 352
13.4 Eine URL mit Headern abrufen 354
13.5 Eine HTTPS-URL abrufen 356
13.6 Den Datenaustauch auf HTTP-Ebene debuggen 356
13.7 Eine Webseite mit Markup versehen 359
13.8 Links aus einer HTML-Datei extrahieren 361
13.9 ASCII in HTML konvertieren 362
13.10 HTML in ASCII konvertieren 363
13.11 HTML- und PHP-Tags entfernen 364
13.12 Smarty-Templates einsetzen 365
13.13 Die Protokolldatei eines Webservers analysieren 367
13.14 Programm: Veraltete Links finden 369
13.15 Programm: Aktualisierte Links herausfinden 372
14
XML 375
14.1 XML manuell generieren 377
14.2 XML mit DOM generieren 380
14.3 XML-Dokumente mit xmlWriter generieren 383
14.4 XML-Daten mit DOM parsen 386
14.5 XML mit SAX parsen 389
14.6 XML mit SimpleXML parsen 394
14.7 Daten zwischen DOM und SimpleXML austauschen 398
14.8 XML mit xmlReader parsen 401
14.9 XML mit XSLT transformieren 407
14.10 PHP-Funktionen in XSL-Stylesheets verwenden 409
14.11 Informationen aus einem XML-Dokument selektieren 413
14.12 XML-Dokumente für Menschen lesbar machen 418
14.13 XML-Dokumente aus PHP-Datenstrukturen erzeugen 422
14.14 XML-Dokumente in PHP-Arrays oder Objekte einlesen 425
15
Webservices 431
15.1 XML-RPC-Anfragen senden 432
15.2 XML-RPC-Anfragen empfangen 435
15.3 XML-RPC-Anfragen mit der XMLRPCi-Erweiterung senden 438
15.4 SOAP-Anfragen mit einem WSDL-Dokument senden 440
15.5 SOAP-Anfragen ohne ein WSDL-Dokument senden 444
15.6 SOAP-Anfragen empfangen 448
15.7 Anfragen an den Amazon-Webservice senden 452
15.8 Anfragen an den eBay-Webservice senden 457
15.9 RSS-Feeds lesen 461
15.10 REST-Anfragen senden 464
15.11 Daten mit WDDX austauschen 469
16
Reguläre Ausdrücke 472
16.1 Von ereg zu preg wechseln 475
16.2 Wörter suchen 477
16.3 Den n-ten Match finden 478
16.4 Zwischen gierigem und nicht-gierigem Matching wählen 479
16.5 E-Mail-Adressen validieren 481
16.6 Alle zu einem Muster passenden Zeilen in einer Datei finden 485
16.7 Text innerhalb von HTML-Tags finden 485
16.8 In regulären Ausdrücken Sonderzeichen verwenden 487
16.9 Datensätze lesen, bei denen ein Muster als Separator dient 489
17
Verschlüsselung und Sicherheit 491
17.1 Passwörter aus den Dateien Ihrer Site heraushalten 493
17.2 Daten durch Kodierung verschleiern 494
17.3 Daten durch Prüfsummen verifizieren 495
17.4 Passwörter speichern 496
17.5 Überprüfung der Passwortsicherheit 498
17.6 Was tun bei verlorenen Passwörtern? 500
17.7 Daten ver- und entschlüsseln 502
17.8 Verschlüsselte Daten in einer Datei oder Datenbank speichern 506
17.9 Verschlüsselte Daten gemeinsam mit einer anderen Website nutzen 509
17.10 SSL ermitteln 511
17.11 E-Mail mit GPG verschlüsseln 512
18
Grafik 515
18.1 Linien, Rechtecke und Vielecke zeichnen 519
18.2 Bogen, Ellipsen und Kreise zeichnen 520
18.3 Unterbrochene Linien zeichnen 522
18.4 Text zeichnen 524
18.5 Zentrierten Text zeichnen 526
18.6 Dynamische Bilder zusammensetzen 531
18.7 Eine transparente Farbe ermitteln und einstellen 534
18.8 Programm: Heraufgeladene Digitalfotos auf Webformat verkleinern 535
18.9 Grafiken geschützt ausgeben 538
18.10 Programm: Aus Umfrageergebnissen Balkendiagramme erstellen 540
19
Internationalisierung und Lokalisierung 544
19.1 Vorhandene Locales auflisten 546
19.2 Ein bestimmtes Locale verwenden 546
19.3 Das Default-Locale setzen 548
19.4 Textmeldungen lokalisieren 548
19.5 Datum und Uhrzeiten lokalisieren 552
19.6 Lokalisierung von Währungen 553
19.7 Bilder lokalisieren 555
19.8 Eingebundene Dateien lokalisieren 557
19.9 Lokalisierungsressourcen verwalten 558
19.10 gettext verwenden 560
19.11 Unicode-Zeichen lesen und ausgeben 561
20
Internetdienste 564
20.1 E-Mails senden 565
20.2 MIME-Mail senden 568
20.3 E-Mail mit IMAP oder POP3 lesen 571
20.4 Nachrichten an Usenet-Newsgruppen senden 574
20.5 Usenet-Nachrichten lesen 576
20.6 Dateien mit FTP herauf- und herunterladen 581
20.7 Adressen über LDAP abfragen 584
20.8 LDAP zur Benutzer-Authentifizierung verwenden 586
20.9 DNS-Lookups ausführen 588
20.10 Überprüfen, ob ein Host erreichbar ist 590
20.11 Informationen über einen Domainnamen herausfinden 592
21
Dateien 594
21.1 Eine lokale Datei erstellen oder öffnen 598
21.2 Eine temporäre Datei erstellen 599
21.3 Eine Datei auf einem entfernten Server öffnen 600
21.4 Eine Datei in einen String einlesen 602
21.5 Einen String in eine Datei schreiben 603
21.6 Die Zeilen, Absätze oder Datensätze in einer Datei zählen 604
21.7 Jedes Wort einer Datei verarbeiten 606
21.8 Eine bestimmte Zeile einer Datei einlesen 608
21.9 Eine Datei zeilen- oder absatzweise in rückwärtiger Reihenfolge bearbeiten 609
21.10 Eine Zeile per Zufall aus einer Datei auswählen 609
21.11 Alle Zeilen einer Datei in eine Zufallsreihenfolge bringen 610
21.12 Textfelder variabler Länge verarbeiten 611
21.13 Konfigurationsdateien einlesen 612
21.14 Von einer bestimmten Stelle einer Datei lesen oder an eine bestimmte Stelle einer Datei schreiben 615
21.15 Die letzte Zeile einer Datei entfernen 616
21.16 Eine Datei an ihrem Platz ohne eine temporäre Datei ändern 618
21.17 Gepufferte Ausgabedaten in eine Datei schreiben 620
21.18 An viele Datei-Handles gleichzeitig schreiben 621
21.19 Metazeichen der Shell mit Escape-Zeichen versehen 622
21.20 Einem Programm Eingabedaten durchgeben 624
21.21 Die Standardausgabe eines Programms lesen 624
21.22 Den Standardfehlerkanal eines Programms einlesen 626
21.23 Eine Datei sperren 627
21.24 Komprimierte Dateien lesen und schreiben 630
21.25 Programm: Unzip 632
22
Verzeichnisse 634
22.1 Zeitstempel auslesen und setzen 637
22.2 Auf Dateiinformationen zugreifen 638
22.3 Dateiberechtigungen oder Dateieigentümerschaft ändern 640
22.4 Einen Dateinamen in seine Bestandteile zerlegen 641
22.5 Eine Datei löschen 642
22.6 Eine Datei kopieren oder verschieben bzw. umbenennen 643
22.7 Alle Dateien in einem Verzeichnis bearbeiten 643
22.8 Eine Liste von Dateinamen finden, die einem bestimmten Muster entspricht 645
22.9 Dateien eines Verzeichnisses filtern 646
22.10 Neue Verzeichnisse erstellen 647
22.11 Ein Verzeichnis und seinen Inhalt löschen 649
22.12 Programm: Eine Auflistung des Webserver-Verzeichnisses erstellen 649
22.13 Programm: Site-Suche 654
23
PHP auf der Kommandozeile 659
23.1 Programmparameter parsen 661
23.2 Programmparameter mit Console_Getopt oder Console_Getargs parsen 662
23.3 Von der Tastatur lesen 669
23.4 Passwörter einlesen 670
23.5 Die Ausgabe eines Kommandozeilen-Befehls weiterverarbeiten 673
23.6 Dateien zeilenweise verarbeiten 675
23.7 Prozesse forken 678
23.8 Einen Server programmieren 681
24
PEAR 685
24.1 PEAR installieren 686
24.2 Den PEAR Package Manager verwenden 690
24.3 PEAR-Pakete installieren und deinstallieren 692
24.4 PEAR-Pakete upgraden 694
24.5 PECL-Pakete installieren 696
24.6 Pakete aus anderen Channels installieren 698
24.7 PEAR in Shared-Hosting-Umgebungen installieren 703
24.8 Eigene PEAR-Pakete erstellen 708
24.9 Eigene Pakete über einen Channel-Server vertreiben 714
Index 725
Wenn du eine Bewertung für dieses Produkt schreibst, hilfst du allen Kund:innen, die noch überlegen, ob sie das Produkt kaufen wollen. Vielen Dank, dass du mitmachst!