Christian Baun
PHP 5 für öummies
Fachkorrektur Von Christian Ritter und Katrin Jost
Inhaltsverzeichnis
Einführung 21
Zu diesem Buch 21 Über die CD 22 Was dieses PHP eigentlich ist 22 Wer sind Sie? Einige Annahmen über Sie 22 Wie dieses Buch aufgebaut ist 23
Teil I: Erste Schritte mit PHP 5 23 Teil II: PHP und die Grundlagen 23 Teil III: Eine Sprache - Tausend Möglichkeiten: Zugriff auf Dateien, FTP, E-Mail, Programmierung, PDF und mehr 23 Teil IV: PHP, HTML, XML und Datenbanken in Aktion 24 Teil V: Der Top-Ten-Teil 24 Teil VI: Anhänge 24
Die Icons in diesem Buch 24 Wie es weiter geht 25
Teitl Erste Schritte mit PHP 5 27
Kapitel 1 Einstieg in PHP 29
Am Ende kann man sagen,... 30 Zend - der Parser 31 Aktuelle Versionen von PHP 31 Was PHP kostet 32 Vorteile von PHP gegenüber anderen Lösungen 32 Welche Hard- und Software ist nötig? 33
Kapitel 2 PHP-Skripte editieren 35
Was macht eine (gute) PHP-Entwicklungsumgebung aus? 37 Das persönliche Anpassen: Customizing 37 Zeigen, was zählt: Syntax Highlighting 38 Machen Sie es sich einfach: Code Snippets 38 Machen Sie es sich doch noch einfacher: Code Completion 38
PHP 5 für Dummies >
Alles im Blick: Funktions- und Klassenbrowser 38 Suchen und Ersetzen 38 Alles richtig gemacht: Syntax Checking 38 Nervige Arbeit? Das muss nicht sein: Mehrzeiliges Einrücken 39 Mehr Übersicht bitte: Smart Tabs 39 Fehler finden leicht gemacht: Debugger 39 Organisation ist das halbe Leben: Projektorganisation 39 Aus den Augen, aus dem Sinn: Folding 39 Hilfe anfordern: Integrierte Hilfe 40
Editoren und Entwicklungsumgebungen 40 BBEdit 40 Bluefish 41 (X)Emacs 42 Glimmer 42 JaneBUILDER 43 Komodo 43 Macromedia HomeSite 45 NEdit 45 Pepper 47 PHPEd 47 PHPEdit 48 UltraEdit 48 vi(m) 49 Weaverslave 51
Zend Studio 51 Oasen im Netz 52 Wie ein PHP-Skript aussieht 53
Kapitel 3 Jetzt geht's tos! 55
Das erste Skript - Hallo Welt 55 Datumsausgabe 57 Werte zuweisen und Daten speichern 58 Benutzereingaben in HTML-Formularen 59 Viele Alternativen, viele Möglichkeiten 62 Schleifen binden 64 E-Mails mit PHP schreiben 66 Datenbanken mit Inhalt füllen und ausgeben 68
PHP-Code richtig dokumentieren 70
Inhaltsverzeichnis
Teil II PHP und die Grundtagen 73
Kapitel 4 Variablen und Operatoren in PHP 75
Variablen richtig schreiben Datentypen in PHP
Der Datentyp Integer Double - oder der Weg in die Tiefen der Genauigkeit Strings - Zeichen ohne Ende Der Datentyp Array Mit Object Objekte deklarieren Wahr oder Falsch? Auf alle Fälle Boolean
Typenumwandlung Casting - nicht nur für angehende Filmstars Machen Sie Variablen in PHP wertvoll!
Zuweisung durch Wert Zuweisung durch Referenzierung
Nur gültige Variablen sind gute Variablen Vordefinierte Umgebungsvariablen sind ein Quell steter Freude (und Informationen) Variable Variablen Darf ich vorstellen: Konstanten Den Speicher freigeben
unset empty isset
Ausdrücke und Operatoren Operationen durchführen... ... also realisieren
Arithmetische Operatoren Inkrementierungs-/Dekrementierungsoperatoren Logische Operatoren - Denken Sie logisch! Vergleiche ziehen Bit-Operatoren Zuweisungsoperatoren Und noch mehr Operatoren - nimmt das denn gar kein Ende PHP-Operator-Rangfolge
Mit Strings arbeiten Auf die Länge kommt es an Den Inhalt eines Strings umdrehen Die Buchstaben eines Strings umwandeln
76 77 77 78 79 80 80 81 83 87 90 90 90 92
97 99
100 103 104 104 105 106 106 107 107 108 110 111 112 114 115 118 120 120 121 122
PHP 5 für Dummies
Strings mischen 124 In Strings suchen 125 Einen Suchstring suchen und die Position im String erfahren 127 Einen Teil aus einem Strings herausholen 128
Kapitel 5 Keine Panik - altes unter Kontrotte mit PHP }29
Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige Alternative: if-else 131
Das Fragezeichen in PHP 132 Mit if-elseif abfragen 133 if-elseif-else 134 Eine sehr abweisende Schleife in PHP: while 135 do-while 13g Der zähe Zähler: for 139 foreach 141 switch - von Fall zu Fall 142 Eine Anweisung zum Pausemachen 145 Weiter geht's mit continue 146 Auf zum Ausgang mit exit und PHP 146 PHP und das sterbende Programm 147
Kapitel 6 Arrays цд
Was Arrays sind 149 Eindimensionale Arrays in PHP 149
Die Elemente eines Arrays zählen - count 151 Die Elemente eines Arrays ausgeben 152
Mehrdimensionale Arrays in PHP 153 Mehrdimensionale Arrays in Strings referenzieren 154 Arrays sortieren 155
Nach Werten sortieren 155 Nach Schlüsseln sortieren 161 Völlig freie Hand beim Sortieren 164
Elemente einem Array hinzufügen oder entnehmen 165 Arrays vergrößern, von hinten und von vorn - kein Problem! 165 Das Erste oder das Letzte? - Das ist hier die Frage 166 Jetzt aber mal ordentlich ausmisten im Array 168 Zum Teufel mit den Doppelten 169 Elemente an ein Array vorne oder hinten anhängen 170
Nützliche Array-Funktionen 172
Inhaltsverzeichnis
Ja, wie viele sind es denn nun? 173 Auf den Schnitt kommt es an 174 Aus zwei (oder mehr) mach eins 176 Die Letzten werden die Ersten sein 178 Auf die Werte kommt es an - zum Teufel mit den Schlüsseln! 180 Eine Funktion auf jedes Element anwenden 180 Das aktuelle Element oder den Schlüssel erfahren 182 Weitblick ermöglichen 182 Mit detektivischem Spürsinn 185 Ein Array in eine Zeichenkette umwandeln 186 Die Suche nach dem Extremen - max und min 186 Ein Array mit einem bestimmten Bereich eines anderen Arrays erzeugen 187
Zeigerrücken leicht gemacht 188 Wie der Zufall so will 190
Kapitel 7 Höhere Proeramntiertechniken mit PHP 191
Funktionen 191 Was eine Funktion ist 192 Funktionen definieren - kein Problem 192 Rückgabewerte - die return-Anweisung 195 Auch in Funktionen sind nur gültige Variablen gute Variablen 197
Die global-Anweisung 197 Das GLOBALS-Array 198
Rekursive Funktionen - wirklich Teufelszeug? 199 Dynamische Funktionsaufrufe 202 Funktionsbibliotheken 204 Klassen und Objekte 207
Kleiner Ausflug in die Objektorientierung 207 Klassen, Objekte und Methodendeklarationen 208 Eine Klasse als Verfeinerung einer anderen 213 Der lange Marsch durch die Instanzen 214
Kapitel 8 Sicherheit aeht Vor 217
Warum soll ich mich überhaupt mit Sicherheit beschäftigen? 217 Wie können Sicherheitslücken überhaupt entstehen? 218
Alle Benutzereingaben überprüfen 218 Keine wichtigen oder geheimen Daten im Webserver-Verzeichnis ablegen 218 Die Globalen Variablen abschalten 218
Wie kann ein Rechner/Server sicher gemacht werden? 220
13
PHP 5 für Dummies
Fehler, die schlimme Folgen haben können 221 Ist die Datenbank auch sicher? 221
Der Fall der Fälle: der Rechner wurde gehackt 222 Sicherheitslücken vermeiden 222
Teil III Eine Sprache - Tausend Möglichkeiten: Zugriff auf Dateien, FTP, E-Mail-Programmierung, PDF und mehr 223
Kapitel 9 Input/Output und Zugriff auf Dateien 225
Mit PHP an den Browser schreiben 225 Mit Dateien arbeiten 230
Die Existenz einer Datei überprüfen 230 Zeit ohne Ende - schön wär's 232 User und ihre Gruppen, Rechte und Pflichten 235 Groß und mächtig 238 Schauen Sie sich doch mal nach dem Typ um 239 Lesen, schreiben, ausführen, verfolgen -Aber nicht ohne vorher nachzuschauen 239
I/O öffnen und schließen 244 Lesen und schreiben lernen -Mit PHP aus Dateien lesen und in Dateien schreiben 246
Bis zum bitteren Ende 247 Aus Dateien lesen 247 In Dateien schreiben 251 Eine leere Datei erzeugen 252
Was man mit einer Datei alles so anstellen kann 252 Arbeiten mit Verzeichnissen 254
Ein Wechsel kann nicht schaden - auch nicht bei Verzeichnissen 255 Ja, aber was ist denn das aktuelle Verzeichnis? 256 Speicher, platz! 256 Selbst ein Verzeichnis erstellen 256 Weg damit! Verzeichnisse löschen 257
Sie haben das Kommando - Befehle an die Shell geben 257 Ex und nicht hopp 258
Ein einfacher Web-Counter 260 Zutritt nur mit Passwort! 261
Inhaltsverzeichnis
Kapitel 10 Fertig für das Protokoll - FTP 265
Jede Menge Möglichkeiten 265 Die Kontaktstelle - ftp_connect 266 Ohne Anmeldung kein Eintritt 267 Hilfe, wie komme ich hier wieder raus? - FTP-Verbindungen beenden 268 Das aktuelle Arbeitsverzeichnis ausgeben 270 Auf andere Ebenen hüpfen 271 Verzeichnis, wechsle dich! 273 Dateientsorgung 275 Dateien herunterladen 276 Direktes Abspeichern ohne Pointer 278 Schöpfung im kleinen Stil 280 Listenreich 281 Jetzt dürfen Sie auch mal passiv sein 283 ftp_put 283 Auch Dateien sind nicht zeitlos ... 285 Übertragung starten mit ftp_fput 286 Jetzt aber ins Detail 288 Aus alt mach neu - Dateien umbenennen 289 Der Löschvorgang - diesmal mit Verzeichnissen 291 Dateien mit Größe 293 Systemforschung betreiben 294
FTP - das volle Programm! 296
Kapitel 11 E-Mails mit PHP erzeugen und Verschicken 297
Text-Mails mit PHP schreiben 297 HTML-Mails mit PHP schreiben 302
Kapitel 12, 13 und H als Bonuskapitel auf der Co 305
Kapitel 15 PbF mit PHP erzeugen 307
Die PDFlib 307 Die PDFlib unter PHP installieren 308 Erste Schritte mit der Bibliothek 309
FPDF 314
15
PHP 5 für Dummies
TeitW PHP, HTML, XML und Datenbanken in Aktion 323
Kapitel 16 Datenbanken und PHP 325
Was MySQL ist 325 Die Geschichte von MySQL 326
Wie hängen MySQL, PHP und der Benutzer zusammen? 326 Erste Schritte nach der Installation 327
Was phpMyAdmin ist und wofür es gut ist 328 phpMyAdmin konfigurieren 329 Auf Nummer Sicher gehen: Ein Backup von einer MySQL-Datenbank machen 329 Die Funktionsweise von MySQL 331
Mit MySQL arbeiten 332 Ohne Datenbank läuft nichts 332 Eine Datenbank auswählen 337 Tabellen herzaubern und wieder verschwinden lassen 341 The SHOW must go on! 347 Die Tabellen füllen 349
Mit SELECT an die Informationen kommen 351 Einträge aus den Tabellen entfernen 358 Mit UPDATE immer auf dem aktuellsten Stand bleiben 360
Eine Datenbank als HTML-Tabelle ausgeben 361 Besucher zählen mit PHP und MySQL 365
Die Felder in ein Array schreiben 371 Her mit den Feldern 371
Kapitel 17 Wahlverwandtschaft: HTML-Formulare und PHP 377
Texteingabefelder, Ausführungsbuttons und was man damit machen kann 378 Radio-Buttons 382 Checkboxen 384 Auswahl-Menüs und Listen 387 Mehrzeilige Texteingabefelder 389 Versteckte Felder 390 Dateien uploaden 390 HTML-Formular und PHP-Listing in einer Datei 391 Pizza-Blitz: Formular für einen Pizzaservice 393 Als Zeichen der Gastfreundschaft: Das Gästebuch 398
Inhaltsverzeichnis
Kapitel 18 XML und PHP 401
Der Hintergrund von XML 401 Der Weg von SGML über HTML zu XML 402
Wie arbeitet man mit XML? 403 Wie die Tags aufgebaut sein müssen 403 Der Anfang eines XML-Dokuments 404 Richtig Kommentieren in XML 405 Mit der Document Type Definition (DTD) die Grammatik festlegen 406 Ein erstes Beispiel 408 XML-Dokumente können gültig und wohlgeformt sein 410 Die Document Type Definition (DTD) auslagern 411
XML-Dokumente mit PHP verarbeiten 413 Fehlercodes 414 Ein erster XML-Parser 415
Teil V Der Top-Ten-Teit 419
Kapitel 19 Die zehn Wichtigsten Dinge, die Sie beim Programmieren beachten sollten 421
Nicht einfach drauf los coden 421 Kommentieren Sie Ihren Code! 421 Sinnvolle Namensgebung 422 Das Gelernte auch anwenden 422 Lernen durch Nachvollziehen und Verstehen 422 Rückversichern - Sicherheit tut not 422 Testen Sie Ihr Programm 423 Fragen Sie ruhig. Aber versuchen Sie es erst selbst! 423 Heben Sie sich Ihre Aufzeichnungen gut auf - Sie werden sie brauchen 423 Bilden Sie sich fort - dieses Buch kann nur ein Anfang sein 424 Veröffentlichen Sie Ihren Code 424 Hocken Sie nicht den ganzen Tag am Rechner 424
Kapitel 20 Die zehn (oder auch mehr) Wichtigsten Adressen im Web 425
http://www.php.net 425 http://www.apache.org 425 http://www.mysql.de 426
17
PHP 5 für Dummies
http://selfhtml.teamone.de 426 http://www.zend.com 426 http://www.hotscripts.com 426 http://www.hotscripts.de 426 http://php.resourceindex.com 427 http://www.linuxguruz.org 427 http://www.selfphp.com 427 http://www.scriptindex.de 427 http://www.phptotal.de 428 http://www.php-center.de 428 http://www.php-homepage.de 428 http://www.phpbb.com/ 428 http://www.weaverslave.ws 428 http://www.postgresql.org 428 http://www.dynamic-webpages.de 429 http://www.phpmyadmin.net 429 http://www.phparchiv.de 429 http://www.pdflib.com 429 http://www.fpdf.org 429 http://www.aditus.nu/jpgraph/index.php 429 http://www.phpgtk.de 430 http://gtk.php.net 430 http://www.mitp.de 430
Teil VI Anhänge fö 1
Anhang A PEAR 433
Gestatten - PEAR 433 Codierstandards 434
Korrektes Einrücken macht Sinn 435 Korrektes Ausseheri von Kontrollstrukturen 435 Sauberer Kommentarstil - besser mehr als weniger -aber vor allem sauber bitte 437 Es könnte auch Bedingungen geben: Einfügen von Code 437 Den Start und das Ende nicht verpassen! 438 Auch ein Kommentar unterliegt Regeln 438 Konventionen auch für Namen 439 Globale Variablen 439 Lokale Variablen 440
Inhaltsverzeichnis
Konstanten 440 Funktionen und Methoden 440 Ein paar Worte zum Abschluss 440
Anhang В Installation Don PHP & Co. mit XAMPP M1
XAMPP für Windows installieren 442 XAMPP für Linux installieren , 444
Anhang С Wegweiser durch die CD 445
Stichwortverzeichnis 467
Und auf der Co...
Bonuskapitel 12 Zufattszahten und andere mathematische Spielereien mit PHP CD-457
Mathematische Operationen durchführen CD-457 Von absolut absoluten Werten CD-458 Basen konvertieren leicht gemacht CD-459 Auf und Ab CD-466 Die trigonometrischen Funktionen... CD-468 Die Arcus-Funktionen CD-471 Von Winkeln und Bögen CD-474 Den Exponenten einer Zahl... CD-475 Den Logarithmus zähmen CD-475 Her mit den Tausendern CD-476 3,14159... CD-477 Von Basen und Exponenten - potenzieren CD-478 Wurzeln ziehen - und das ganz ohne Schmerzen CD-479 Die Arcus-Familie CD-480
So genau muss es gar nicht sein - Zahlen mit beliebiger Genauigkeit CD-481 Die grundlegenden Rechenoperationen mit beliebiger Genauigkeit durchführen CD-481 Zwei vergleichen CD-483 Von Basen, Exponenten und Genauigkeitsfanatikern CD-484 Setzen Sie Standards mit bcscale CD-485 Her mit dem Modulo CD-485 Jetzt ziehen Sie doch endlich die Wurzel! CD-485
19
PHP 5 für Dummies
Das kann doch kein Zufall sein! CD-486 Was Zufallszahlen - rein zufällig - alles können CD-486 Erst mal den Generator setzen - dann starten CD-487 Bessere Zufallszahlen erzeugen CD-489 Ein wirklich sicheres Passwort erzeugen CD-491 Ziehung der Lottozahlen CD-493
Bonuskapitel 13 Altes zu seiner Zeit Cb~b97
Zeit und Datum CD-497 Korrekt oder nicht korrekt, das ist hier die Frage CD-498 Die Ausgabe bis ins letzte Detail festlegen CD-500 Die Zeit nicht irgendwie ausgeben, sondern sauber formatiert CD-503 Die genaue Zeit, bitte! . CD-508 Nicht irgendeine Uhrzeit - eine bestimmte soll es sein CD-510 Formatieren nach Belieben CD-513
Bonuskapitel Щ Bilder bearbeiten und generieren mit PHP und der GD-Bibtiotbek CDS 17
Der GD-Bibliothek auf den Zahn fühlen CD-520 Welche Funktionen sind nützlich CD-523 Jetzt geht's los CD-524
Linien und Kreise ziehen - kein Problem CD-527 True-Type-Schriften in Bilder setzen CD-530 Texte in vorhandene Bilder einfügen CD-534 Schach mal anders CD-535