Liebe Besucherinnen und Besucher,
aufgrund unseres Sommerfestes sind wir am 03. September 2026 bis 14 Uhr erreichbar. Am 04. September 2026 sind wir wieder wie gewohnt für Sie da. Vielen Dank für Ihr Verständnis.
Ihr Team von Sack Fachmedien
E-Book, Deutsch, 400 Seiten
Krause Programmieren lernen in PHP 5
1. Auflage 2004
ISBN: 978-3-446-22926-6
Verlag: Carl Hanser Fachbuchverlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
E-Book, Deutsch, 400 Seiten
ISBN: 978-3-446-22926-6
Verlag: Carl Hanser Fachbuchverlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Am Anfang des Buches steht die Beschäftigung mit der Sprache. Vorgestellt werden Elemente wie Variablen, Datentypen, Konstanten, Funktionen, Arrays und Objekte sowie die Erweiterungen der in PHP 5 neuen OOP-Funktionen. Auf dieser Grundlage lassen sich -zusammen mit Webtechnologien wie HTML, JavaScript, Webformulare und Cookies - bereits erste einfache Webanwendungen erstellen.
Den zweiten Teil bestimmen dann fortgeschrittene Themen. Dazu zählt neben Features wie FTP-Zugriff, Reguläre Ausdrücke und Grafikprogrammierung vor allem die Datenbankanbindung. Hierbei kommen MySQL und die neue, in PHP integrierte Datenbank SQLite zum Einsatz, die ausführlich vorgestellt werden. Auf diese Weise lassen sich leistungsfäh ige dynamische Websites erstellen.
Das Buch richtet sich explizit an Leser, die über nur sehr wenige Programmiererfahrung verfügen und einen kompakten Einstieg in PHP 5 suchen. Es zeichnet sich durch die zahlreichen Beispiele sowie seine Schritt-für-Schritt-Anleitungen aus und ist so der ideale Begleiter für die ersten Schritte mit PHP 5.
Autoren/Hrsg.
Weitere Infos & Material
1;Schnellübersicht;6
2;Vorwort;8
3;Inhaltsverzeichnis;10
4;1 Vor dem Start;18
4.1;1.1 Wer sind Sie?;20
4.2;1.2 Hinweise zum Buch;20
4.2.1;1.2.1 Schreibweisen im Buch;21
4.2.2;1.2.2 Wichtige Symbole;21
4.2.3;1.2.3 Was nicht aufgeführt wurde;21
4.2.4;1.2.4 Navigationshilfen;22
4.3;1.3 Installation;22
4.3.1;1.3.1 L22
4.3.2;1.3.2 W23
4.3.3;1.3.3 WPMP;23
4.3.4;1.3.4 WIMP;23
4.3.5;1.3.5 Andere Server;23
4.4;1.4 Softwarequellen;24
4.5;1.5 Hilfe im Web;24
4.6;1.6 Website zum Buch;25
4.7;1.7 Welche PHP-Version?;25
5;2 Dynamik in der Webseite;26
5.1;2.1 HTML ist langweilig;28
5.1.1;2.1.1 Mysterium CGI;28
5.1.2;2.1.2 Was Webserver noch können;29
5.1.3;2.1.3 Hochgesteckte Erwartungen;29
5.2;2.2 Werden Sie ein guter Programmierer!;30
5.2.1;2.2.1 Ein wenig Theorie;30
5.2.2;2.2.2 Mit Paradigmen vom Problem zur Lösung;31
5.2.3;2.2.3 Programmieren mit Stil;32
5.3;2.3 PHP ist einfach;33
5.3.1;2.3.1 Sofort etwas ausprobieren;33
5.3.2;2.3.2 Wo wird programmiert?;34
5.3.3;2.3.3 Wo wird PHP abgearbeitet?;34
5.3.4;2.3.4 PHP und HTML;35
5.4;2.4 Erstellen und Testen;39
5.4.1;2.4.1 Sind Sie startklar?;39
6;3 Variablen und Konstanten;46
6.1;3.1 Variablen erzeugen und erkennen;48
6.2;3.2 Datentypen;49
6.2.1;3.2.1 Datentypen darstellen und erzwingen;50
6.3;3.3 Variablen genauer betrachtet;52
6.3.1;3.3.1 Verweise;53
6.4;3.4 Konstanten;53
6.4.1;3.4.1 Definition von Konstanten;54
6.4.2;3.4.2 Vordefinierte Konstanten;55
7;4 Rechnen und Verarbeiten;56
7.1;4.1 Zeichenketten;58
7.1.1;4.1.1 Zeichenkettenfunktionen;58
7.1.2;4.1.2 Basiswissen für Zeichenketten;59
7.1.3;4.1.3 Zeichenketten in der Praxis;64
7.1.4;4.1.4 HTML problemlos verwenden;69
7.2;4.2 Praktische Mathematik;72
7.2.1;4.2.1 Operatoren;72
7.2.2;4.2.2 Mathematische Funktionen;77
7.2.3;4.2.3 Funktionen beliebiger Genauigkeit;81
8;5 Komplexe Datenstrukturen: Arrays;84
8.1;5.1 Wie Arrays funktionieren;86
8.1.1;5.1.1 Eindimensionale Arrays;86
8.1.2;5.1.2 Sprechende Indizes: Assoziative Arrays;89
8.1.3;5.1.3 Mehrdimensionale Arrays;91
8.1.4;5.1.4 Mehrdimensionale Arrays verarbeiten;92
8.2;5.2 Die Arrayfunktionen;94
8.3;5.3 Zugriff auf Array-Elemente;95
8.3.1;5.3.1 Arrays durchlaufen;96
8.3.2;5.3.2 Mit Arrays spielen;96
8.3.3;5.3.3 Interessante Arrayeffekte;97
9;6 Das Steuerrad für PHP: Kontrollstrukturen;100
9.1;6.1 Übersicht;102
9.1.1;6.1.1 Strukturiertes Programmieren;102
9.1.2;6.1.2 Blöcke;104
9.2;6.2 Verzweigungen;105
9.2.1;6.2.1 Bedingungen;105
9.2.2;6.2.2 Bedingungen mit if auswerten;107
9.2.3;6.2.3 Mehrfachauswertungen mit switch;109
9.3;6.3 Schleifen;111
9.3.1;6.3.1 Standardschleifen mit while;111
9.3.2;6.3.2 Die »Mindest-Schleife« mit do ... while;113
9.3.3;6.3.3 Abzählbare Schleifen: for(;;);115
9.3.4;6.3.4 Felder bestellen: foreach;117
9.4;6.4 Ordnung ins Chaos: Funktionen;119
9.4.1;6.4.1 Die Welt erschaffen: Funktionsdefinition;119
9.4.2;6.4.2 Kleine Welten: Variablen in Funktionen;120
9.5;6.5 Fehler einfangen: try@ catch;132
9.5.1;6.5.1 Bei Fehler: Abbiegen;133
9.5.2;6.5.2 Einfache Fehlerbehandlungen;134
9.5.3;6.5.3 Fehlerunterdrückung mit @;134
10;7 Sammeltransporte: Objekte;138
10.1;7.1 Einführung in die Welt der Objekte;140
10.1.1;7.1.1 Das Konzept;140
10.1.2;7.1.2 Das erste Objekt;141
10.2;7.2 Erweiterte Techniken für Objekte;144
10.2.1;7.2.1 Direkter Zugriff auf Klassen;144
10.2.2;7.2.2 Konstruktoren und Destruktoren;145
10.2.3;7.2.3 Vererbung und Schnittstellen;147
10.3;7.3 Spezielle Funktionen;149
10.3.1;7.3.1 Methoden aufrufen;149
10.3.2;7.3.2 Eigenschaften von Klassen ermitteln;150
10.4;7.4 Klassenpraxis;151
10.4.1;7.4.1 Herausforderung: Grafik selbstgebaut;151
10.5;7.5 Eingebaut: Die Fehlerklassen;156
10.5.1;7.5.1 Die Klasse Exception;156
10.5.2;7.5.2 Praktischer Einsatz der Fehlerbehandlung;158
11;8 Daten bewegen: Dateisystem und FTP;162
11.1;8.1 Dateisystem;164
11.1.1;8.1.2 Zugriff auf Dateien;165
11.1.2;8.1.3 Mit Dateien arbeiten;180
11.2;8.2 Umgang mit Verzeichnissen;182
11.2.1;8.2.1 Basisfunktionen;182
11.2.2;8.2.2 Im Verzeichnissystem bewegen;182
11.3;8.3 Verbindungen zu Servern;184
11.3.1;8.3.1 HTTP-Verbindungen;184
11.3.2;8.3.2 FTP-Verbindungen mit Dateifunktionen;187
11.4;8.4 FTP-Funktionen;188
11.4.1;8.4.1 Verbindung zu FTP-Servern;188
11.4.2;8.4.2 Navigation im Verzeichnisbaum;191
12;9 Daten aus dem Browser: Formulare und Links;196
12.1;9.1 Daten aus einem Formular ermitteln;198
12.1.1;9.1.1 Formulare in HTML erstellen;198
12.1.2;9.1.2 Formularelemente analysieren;203
12.1.3;9.1.3 Dateiupload;208
12.2;9.2 Daten per URL weiterreichen;214
12.2.1;9.2.1 Wie werden Daten weitergereicht?;214
12.2.2;9.2.2 Probleme mit der Datenübertragung;216
12.3;9.3 Daten über den Server ermitteln;220
12.3.1;9.3.1 Servervariablen ermitteln;220
12.3.2;9.3.2 Übersicht Servervariablen;221
13;10 Big Brother: Sessions und Cookies;224
13.1;10.1 Wozu dienen Sessions?;226
13.2;10.2 Sessionmanagement;227
13.2.1;10.2.1 Wie Sessions funktionieren;227
13.2.2;10.2.2 Ausblick;240
13.3;10.3 Cookies;242
13.3.1;10.3.1 Einführung in Cookies;242
13.3.2;10.3.2 Cookies mit PHP verarbeiten;245
14;11 Datenbanken: So werden Daten gespeichert;250
14.1;11.1 Vorbemerkungen;252
14.2;11.2 Ganz universell: SQL;252
14.2.1;11.2.1 Grundsätzliche Konzepte;252
14.2.2;11.2.2 Vorbereitungen;258
14.3;11.3 Mit MySQL arbeiten;260
14.3.1;11.3.1 Datenbanken und Tabellen erzeugen;260
14.3.2;11.3.2 Mit Datenbanken arbeiten;262
14.3.3;11.3.3 Weitere Tabellenfunktionen;269
14.3.4;11.3.4 Die MySQL-Funktionen;270
14.3.5;11.3.5 PHP-Funktionen für MySQL;270
14.4;11.4 MySQL ganz praktisch;272
14.4.1;11.4.1 Vorbereiten des Projekts;272
14.4.2;11.4.2 Aufbau der Skripte;273
14.4.3;11.4.3 Die Skripte im Detail;273
14.4.4;11.4.4 Diskussion der Idee;284
14.5;11.5 SQLite kurz vorgestellt;285
14.5.1;11.5.1 Der SQLite SQL-Dialekt;285
14.5.2;11.5.2 Die SQLite-Funktionen;289
14.6;11.6 SQLite ganz praktisch;291
14.6.1;11.6.1 Das Projekt vorbereiten;291
14.6.2;11.6.2 Der Quellcode;292
14.6.3;11.6.3 Diskussion;297
15;12 Symbiose: PHP und JavaScript;298
15.1;12.1 Warum JavaScript?;300
15.1.1;12.1.1 Prinzipielle Fragen zu JavaScript;300
15.1.2;12.1.2 JavaScript erkennen;301
15.2;12.2 Umgang mit Formularen;303
15.2.1;12.2.1 Projekt: Eine Abstimmungssite;303
15.3;12.3 Gutes Zusammenspiel: Der Chat;307
15.3.1;12.3.1 Vorbereitung: Die Datenbank;307
15.3.2;12.3.2 Mehr Leistung durch JavaScript;312
16;13 1000 kleine Helfer: Die PHP- Funktionen;314
16.1;13.1 Übersicht;316
16.2;13.2 Hilfsdesigner: Bildfunktionen mit GD2;316
16.2.1;13.2.1 Bilddaten dynamisch erzeugen;316
16.2.2;13.2.2 Bilder dynamisch erzeugen;317
16.2.3;13.2.3 Umgang mit Fehlern;321
16.2.4;13.2.4 Weitere Bildfunktionen;322
16.3;13.3 Suchexperten: Reguläre Ausdrücke;324
16.3.1;13.3.1 Kennen Sie Perl?;324
16.3.2;13.3.2 Überall reguläre Ausdrücke;324
16.3.3;13.3.3 Erstellen einfacher Muster;329
16.3.4;13.3.4 Vom Einfachen zum Komplexen;330
16.3.5;13.3.5 Suchen und Ersetzen;333
16.3.6;13.3.6 Alle Metazeichen auf einen Blick;334
16.3.7;13.3.7 Funktionen für reguläre Ausdrücke;336
16.4;13.4 Zeitwächter: Datumsfunktionen;337
16.4.1;13.4.1 Probleme mit Datumswerten;337
16.4.2;13.4.2 Datumsfunktionen;338
17;14 Fehlersuche und Konfiguration;348
17.1;14.1 Die Informationszentrale;350
17.2;14.2 Konfiguration mit »php.ini«;351
17.3;14.3 Tipps zur Fehlersuche;362
17.4;14.4 Typische Fehler;362
17.4.1;14.4.1 Verwendung von printf und print;362
17.4.2;14.4.2 Missbrauch des Variablenersatzes;363
17.4.3;14.4.3 Umgang mit Variablen;363
17.4.4;14.4.4 Paradigmen und deren Gültigkeit;364
17.4.5;14.4.5 Missverstandene Kontrollstrukturen;364
17.4.6;14.4.6 Fehler beim Umgang mit Datenbanken;364
18;Anhang;366
18.1;A Listings;368
18.2;B Quickreferenz MySQL 4;374
18.3;C Empfehlungen;388
18.4;D Index;392
18.5;E An den Autor;400
(S. 27-28)
Bevor Sie beginnen, die ersten Skripte zu schreiben, denken Sie einen Moment darüber nach, wie ein Webserver arbeitet. Wenn Sie den Browser öffnen, und eine Adresse eingeben, zerlegt der Browser diese zuerst in zwei Teile. Betrachten Sie folgende Adresse:
Diese Angabe besteht zum einen aus dem Protokoll: http. Dies steht für Hypertext Transfer Protocol und definiert die »Sprache«, in der Webserver und Browser miteinander reden. Danach folgt die Adresse des Servers, bestehend aus seinem eigenen Namen »www.php« und der Domäne »comzept.de«. Dieser Name wird zuerst in eine IP-Nummer, die weltweit eindeutig ist, aufgelöst. Das passiert aber transparent im Hintergrund und wird normalerweise vom Benutzer nicht wahrgenommen. Der dritte Teil enthält nun Pfad- und Dateiangaben, hier »phplernen/ index.php«. Diesen Teil sendet der Browser mit dem entsprechenden HTTP-Kommando GET an den Server. Der reagiert darauf entweder mit der Auslieferung der angeforderten Datei oder einer Fehlerinformation, wenn die Datei nicht gefunden wurde.
So war das Web ursprünglich konzipiert worden. HTML-Seiten sollten nur durch Hyperlinks verbunden werden. Das genügte, um Informationen strukturiert darzustellen und Designern eine gewisse Freiheit bei der Darstellung zu erlauben.
2.1.1 Mysterium CGI
Das Ziel einer solchen Anforderung kann auch ein Skript auf dem Webserver sein. Der Webserver ruft dann das mit der Dateierweiterung verbundene Programm auf. Dessen Ausgabe wiederum wird an den Browser gesendet. Praktisch können Sie also mit einem Skript alles kontrollieren was zum Browser geht. Die Schnittstelle zwischen Webserver und solchen Programmen zur Ausführung von Skripten ist sehr alt, sehr gut dokumentiert, sehr bekannt und sehr langsam. Ihr Name ist CGI – Common Gateway Interface. CGI selbst macht nichts. Die erste Skriptsprache, die sich CGI bediente, war Perl. Perl ist sehr weit verbreitet und kann virtuos mit Zeichen umgehen. Leider ist Perl auch sehr schwer zu erlernen und für Anfänger nicht zu empfehlen.
Mit CGI ist es möglich, die Anforderungen eines Browsers auf ein Skript umzuleiten. Solche Anforderungen können neben der Adresse einer Datei auch die Inhalte eines Formulars sein. Damit besteht nun die Möglichkeit, den Inhalt eines Formulars, das der Benutzer ausgefüllt hat, zu verarbeiten und darauf gezielt zu reagieren. Diese Reaktion kann sehr vielfältig ausfallen. Sie können das CGI-Skript veranlassen, die Daten zu überprüfen und dem Benutzer eine Fehlermeldung zurückzusenden, wenn er etwas vergessen hat. Oder Sie legen die Daten in einer Textdatei ab, die Sie sich später anschauen. Wenn Sie schon etwas professioneller programmieren, werden Sie dagegen eine Datenbank verwenden.
Über CGI wurden viele Dinge geschrieben. Ein wichtiger Kritikpunkt ist die Geschwindigkeit. CGI startet mit jeder Anforderung einen so genannten Prozess auf dem Server, also eine Instanz des Skript-Interpreters. Wenn gleichzeitig 50 Benutzer zugreifen, werden 50 Instanzen gestartet, jede mit einigen Megabyte Speicherverbrauch. Ganz realistisch muss man heute sagen, hat die Entwicklung der Hardwareressourcen diesen Nachteil fast beseitigt. 50 Megabyte Speicher sind sehr wenig und 50 gleichzeitige Besucher sind verdammt viel. PHP kann man deshalb gut – sowohl auf der Entwicklungsmaschine auch auf einem Server im Netzwerk, als CGI-Applikation laufen lassen. Damit ist auch klar, das CGI nicht gleich Perl ist, in diesem Buch ist CGI gleich PHP.
Ein anderer Nachteil ist die Arbeitsweise des Protokolls HTTP. Jede Anforderung des Browsers ist ein für sich abgeschlossener Prozess. Da CGI den Interpreter jedes mal startet und danach wieder aus dem Speicher entfernt, gehen auch alle Einstellungen verloren. Das »Wiedererkennen« des Benutzers auf der nächsten Seite stellt deshalb ein Problem dar. Dank PHP stehen dafür aber spezielle Funktionen zur Verfügung – die Sessionfunktionen. Darauf wird selbstverständlich detailliert eingegangen. Also ist auch dieser Nachteil nicht wirklich schlimm.
2.1.2 Was Webserver noch können
Webserver bieten eigene Schnittstellen. Diese sind – im Gegensatz zu CGI – von Server zu Server verschieden. Glücklicherweise gibt es heute nicht mehr sehr viele konkurrierende Webserver. In der PHP-Welt, wo Produktionsserver überwiegend unter Linux laufen und für Entwicklungsumgebungen Windows verwendet wird, dominiert der Apache Webserver, gefolgt von dem Internet Information Server von Microsoft. Beide eignen sich für den Betrieb von PHP und für beide gibt es neben der CGIVersion auch eine spezielle Variante, die auf die jeweiligen proprietären Schnittstellen zugreift. Damit beschäftigt sich dieses Buch aber nicht, weil es nicht beim Programmieren hilft und meist keinen Unterschied macht, ob das Skript mit einer Webserverschnittstelle oder CGI läuft. Die zusätzlichen Möglichkeiten der Webserverschnittstellen mögen Profis zu schätzen wissen, die eigene Server betreiben und ihre Applikationen darauf optimieren. Wenn Sie mit Ihren Skripten zu irgendeinem Provider gehen, werden Sie jedoch oft auf Server mit CGI treffen und solche optimierten Skripten funktionieren dann nicht. Beschäftigen Sie sich damit erst, wenn Sie PHP richtig gut können und ein eigener Server zur Verfügung steht.




