13
Christian Baun PHP 5 für öummies Fachkorrektur Von Christian Ritter und Katrin Jost

Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

Christian Baun

PHP 5 für öummies

Fachkorrektur Von Christian Ritter und Katrin Jost

Page 2: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 3: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 4: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 5: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 6: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 7: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 8: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 9: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 10: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 11: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 12: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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

Page 13: Christian Baun - digitale-objekte.hbz-nrw.dedigitale-objekte.hbz-nrw.de/storage2/2018/06/16/file_372/7938754.pdf · Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige

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