Book description
Das beliebte PHP 5 Kochbuch in vollständig aktualisierter und erweiterter Neuauflage zu PHP 5.3: Gesammeltes Wissen von amerikanischen und deutschen PHP-Experten! PHP-Programmierer finden in diesem Buch hunderte von erprobten "Rezepten" zur aktuellen PHP-Version 5.3 inklusive Erläuterungen zu den neuen Features. Dieses Kochbuch bietet mehr als nur Cut-and-Paste-Codestücke: Die Rezepte erläutern umfassend, wie der Code funktioniert und warum der vorgestellte Ansatz gewählt wurde. Anstatt mühsam Mailing-Listen oder Online-Dokumentationen durchforsten zu müssen, können sich Entwickler auf dieses Buch verlassen, das sie schnell mit Lösungen für zahlreiche Probleme versorgt.
Table of contents
- PHP 5 Kochbuch
- Einleitung
-
1. Strings
- 1.0 Einführung
- 1.1 Auf Teil-Strings zugreifen
- 1.2 Teile von Strings ersetzen
- 1.3 Einen String zeichenweise verarbeiten
- 1.4 Einen String wort- oder zeichenweise umkehren
- 1.5 Tabulatoren expandieren und komprimieren
- 1.6 Die Groß- und Kleinschreibung in Texten ändern
- 1.7 Funktionen und Ausdrücke in Strings interpolieren
- 1.8 Leerzeichen aus einem String entfernen
- 1.9 Kommaseparierte Daten zerlegen
- 1.10 Begrenzte Daten mit fester Länge zerlegen
- 1.11 Strings aufteilen
- 1.12 Text an bestimmten Zeilenlängen umbrechen
- 1.13 Binärdaten in einem String speichern
-
2. Zahlen
- 2.0 Einführung
- 2.1 Prüfen, ob ein String eine gültige Zahl enthält
- 2.2 Fließkommazahlen vergleichen
- 2.3 Fließkommazahlen runden
- 2.4 Mit Bereichen von Integer-Zahlen arbeiten
- 2.5 Zufallszahlen innerhalb eines Bereichs generieren
- 2.6 Verzerrte Zufallszahlen generieren
- 2.7 Logarithmen berechnen
- 2.8 Potenzen berechnen
- 2.9 Zahlen formatieren
- 2.10 Den Plural korrekt ausgeben
- 2.11 Trigonometrische Funktionen berechnen
- 2.12 Trigonometrische Funktionen mit Graden anstelle von Bogenmaßen berechnen
- 2.13 Mit sehr großen oder kleinen Zahlen arbeiten
- 2.14 Zwischen Zahlensystemen konvertieren
- 2.15 Mit anderen Zahlen als Dezimalzahlen rechnen
-
3. Datum und Zeit
- 3.0 Einführung
- 3.1 Das aktuelle Datum und die aktuelle Zeit feststellen
- 3.2 Datums- und Zeitbestandteile in einen Epochen-Zeitstempel konvertieren
- 3.3 Einen Epochen-Zeitstempel in Zeit- und Datumsbestandteile konvertieren
- 3.4 Datum oder Zeit in einem bestimmten Format ausgeben
- 3.5 Die Differenz zwischen zwei Datumswerten berechnen
- 3.6 Den Abstand zwischen zwei Datumswerten über julianische Tage ermitteln
- 3.7 Den Tag der Woche, des Monats, des Jahres oder die Kalenderwoche des Jahres ermitteln
- 3.8 Start- und Enddatum einer Woche errechnen
- 3.9 Ein Datum validieren
- 3.10 Datums- und Zeitwerte aus Strings lesen
- 3.11 Addition und Subtraktion mit einem Datum
- 3.12 Die Zeit mit Zeitzonen berechnen
- 3.13 Geografische Lageinformationen zu einer Zeitzone bestimmen
- 3.14 Die Sommerzeit berücksichtigen
- 3.15 Zeitangaben mit hoher Genauigkeit generieren
- 3.16 Periodisch wiederkehrende Ereignisse berechnen
- 3.17 Andere Kalender als den gregorianischen verwenden
- 3.18 Programm: Kalender
-
4. Arrays
- 4.0 Einführung
- 4.1 Ein Array anlegen, das nicht mit dem Element 0 beginnt
- 4.2 Mehrere Array-Elemente unter einem Schlüssel speichern
- 4.3 Ein Array mit einer Folge von Integer-Werten initialisieren
- 4.4 Ein Array durchlaufen
- 4.5 Elemente aus einem Array löschen
- 4.6 Die Größe eines Arrays ändern
- 4.7 Ein Array an ein anderes anfügen
- 4.8 Ein Array in einen String verwandeln
- 4.9 Ein Array mit Kommata ausgeben
- 4.10 Prüfen, ob sich ein Schlüssel in einem Array befindet
- 4.11 Prüfen, ob sich ein Element in einem Array befindet
- 4.12 Die Position eines Elements in einem Array feststellen
- 4.13 Elemente finden, die einer bestimmten Prüfung standhalten
- 4.14 Das Array-Element mit dem größten oder kleinsten Wert finden
- 4.15 Ein Array umkehren
- 4.16 Ein Array sortieren
- 4.17 Ein Array über ein berechnetes Feld sortieren
- 4.18 Mehrere Arrays sortieren
- 4.19 Ein Array mithilfe einer Methode statt einer Funktion sortieren
- 4.20 Ein Array in eine zufällige Reihenfolge bringen
- 4.21 Einen Kartenstapel mischen
- 4.22 Doppelte Elemente aus einem Array entfernen
- 4.23 Die Vereinigungs-, Schnitt- oder Differenzmenge zweier Arrays ermitteln
- 4.24 Alle Elementkombinationen eines Arrays finden
- 4.25 Alle Permutationen eines Arrays finden
- 4.26 Eine Funktion auf jedes Element eines Arrays anwenden
- 4.27 Echte Objekte als Schlüssel von Arrays verwenden
- 4.28 Ein Objekt wie ein Array auftreten lassen
- 4.29 Programm: Ein Array horizontal angeordnet in einer HTML-Tabelle ausgeben
-
5. Variablen
- 5.0 Einführung
- 5.1 Die Verwechslung von == und = vermeiden
- 5.2 Einen Vorgabewert festlegen
- 5.3 Werte ohne Hilfe von temporären Variablen austauschen
- 5.4 Einen dynamischen Variablennamen erzeugen
- 5.5 Statische Variablen verwenden
- 5.6 Variablen in mehreren Prozessen gemeinsam verwenden
- 5.7 Komplexe Daten als String kapseln
- 5.8 Variableninhalte als Strings ausgeben
-
6. Funktionen
- 6.0 Einführung
- 6.1 Auf Funktionsparameter zugreifen
- 6.2 Vorgabewerte für Funktionsparameter festlegen
- 6.3 Werte als Referenzen übergeben
- 6.4 Benannte Parameter verwenden
- 6.5 Funktionen mit einer variablen Anzahl von Argumenten verwenden
- 6.6 Werte per Referenz zurückgeben
- 6.7 Mehr als einen Wert zurückgeben
- 6.8 Bestimmte Rückgabewerte überspringen
- 6.9 Fehlermeldungen zurückgeben
- 6.10 Variable Funktionen aufrufen
- 6.11 Innerhalb einer Funktion auf eine globale Variable zugreifen
- 6.12 Dynamische Funktionen erzeugen
- 6.13 Objekt-Datentypen für Funktionsparameter vorschreiben
-
7. Klassen und Objekte
- 7.0 Einführung
- 7.1 Objekte instantiieren
- 7.2 Objektkonstruktoren definieren
- 7.3 Destruktoren definieren
- 7.4 Zugriffskontrolle implementieren
- 7.5 Änderungen an Klassen und Methoden verhindern
- 7.6 String-Darstellungen für Objekte definieren
- 7.7 Interfaces definieren
- 7.8 Eine abstrakte Basisklasse definieren
- 7.9 Mit Namespaces Kollisionen zwischen Klassennamen verhindern
- 7.10 Namespace-Aliase – weniger Tipparbeit bei Verwendung von Namensräumen
- 7.11 Funktionen und Klassen aus dem globalen Namensraum verwenden
- 7.12 Objektreferenzen zuweisen
- 7.13 Objekte klonen
- 7.14 Callback-Funktionen mit einem Zustandsgedächtnis programmieren
- 7.15 Den Zugriff auf Eigenschaften abfangen
- 7.16 Methoden auf Objekten aufrufen, die von einer anderen Methode geliefert werden
- 7.17 Zusammengesetzte Klassen verschmelzen
- 7.18 Auf überschriebene Methoden zugreifen
- 7.19 Methodenpolymorphie einsetzen
- 7.20 Klassenkonstanten definieren
- 7.21 Statische Eigenschaften und Methoden definieren
- 7.22 Die Objektserialisierung steuern
- 7.23 Objektintrospektion
- 7.24 Prüfen, ob ein Objekt eine Instanz einer bestimmten Klasse ist
- 7.25 Klassendateien bei der Instantiierung von Objekten automatisch laden
- 7.26 Mehrere Autoload-Handler definieren
- 7.27 Objekte dynamisch instantiieren
- 7.28 Eine Anwendung: whereis
-
8. Effizienter Umgang mit Daten
- 8.0 Einführung
- 8.1 Über die Eigenschaften eines Objekts iterieren
- 8.2 Einfache Objekt-Iteration mit IteratorAggregate und ArrayObject
- 8.3 Einen eigenen Iterator implementieren
- 8.4 Einen eigenen Wrapper für Streams schreiben
- 8.5 Einen Stream filtern
- 8.6 Eigene Filter schreiben
- 8.7 Performancegewinn mit Arrays fester Größe erzielen
- 8.8 Standard-Datenstrukturen nicht neu erfinden – Queues, Stacks und Co.
-
9. Fehlerbehandlung mit Exceptions
- 9.0 Einführung
- 9.1 Fehlermeldungen vor Anwendern verbergen
- 9.2 Einstellungen zur Fehlerbehandlung vornehmen
- 9.3 Eine benutzerdefinierte Funktion zur Fehlerbehandlung verwenden
- 9.4 Fehler protokollieren
- 9.5 Debug-Informationen protokollieren
- 9.6 PHP-Fehler- und Warnmeldungen in Ausnahmen umwandeln
- 9.7 Ausnahmen abfangen
- 9.8 Eigene Ausnahmen werfen
- 9.9 Klassenabhängiges Exception-Handling
- 9.10 Vordefinierte Exception-Klassen für alle Lebenslagen
- 9.11 Ungefangene Exceptions zentral behandeln
- 9.12 Einen Stacktrace ausgeben
-
10. Web-Grundlagen
- 10.0 Einführung
- 10.1 Cookies setzen
- 10.2 Cookie-Werte lesen
- 10.3 Cookies löschen
- 10.4 Zu einer anderen Adresse umleiten
- 10.5 Sitzungen verfolgen
- 10.6 Sessions in einer Datenbank speichern
- 10.7 Verschiedene Browser erkennen
- 10.8 Einen GET-Query-String bilden
- 10.9 HTTP-Basic- oder -Digest-Authentifizierung einsetzen
- 10.10 Cookie-Authentifizierung verwenden
- 10.11 Ausgaben vorzeitig an den Browser senden
- 10.12 Ausgaben an den Browser zwischenspeichern
- 10.13 Web-Ausgaben mit gzip komprimieren
- 10.14 Den Fehler »headers already sent« vermeiden
- 10.15 Umgebungsvariablen lesen
- 10.16 Umgebungsvariablen setzen
- 10.17 Konfigurationsvariablen lesen
- 10.18 Konfigurationsvariablen setzen
- 10.19 Innerhalb von Apache kommunizieren
- 10.20 Code-Profile generieren
- 10.21 Geänderte Dateien herunterladen und unveränderte vom Browser cachen lassen
- 10.22 Programm: (De-)Aktivator für Website-Konten
- 10.23 Programm: Störungsprüfer
-
11. Formulare
- 11.0 Einführung
- 11.1 Formulareingaben verarbeiten
- 11.2 Formulareingaben prüfen
- 11.3 Mit mehrseitigen Formularen arbeiten
- 11.4 Formulare mit erhaltenen Informationen und Fehlermeldungen erneut anzeigen
- 11.5 Mehrfaches Absenden desselben Formulars verhindern
- 11.6 Hochgeladene Dateien verarbeiten
- 11.7 Die Formularverarbeitung durch PHP absichern
- 11.8 Steuerzeichen in Benutzerdaten durch Escape-Sequenzen ersetzen
- 11.9 Mit Formularvariablen arbeiten, deren Name einen Punkt enthält
- 11.10 Formularelemente mit Mehrfachoptionen verwenden
- 11.11 Drop-down-Menüs auf Basis des aktuellen Datums erzeugen
-
12. Datenbankzugriff
- 12.0 Einführung
- 12.1 Textdateien als Datenbanken verwenden
- 12.2 DBM-Datenbanken verwenden
- 12.3 Eine SQLite-Datenbank verwenden
- 12.4 Mit einer SQL-Datenbank verbinden
- 12.5 Eine SQL-Datenbank abfragen
- 12.6 Zeilen ohne eine Schleife abrufen
- 12.7 Daten in einer SQL-Datenbank modifizieren
- 12.8 Abfragen effizient wiederholen
- 12.9 Ermitteln, wie viele Zeilen eine Abfrage geliefert hat
- 12.10 Anführungszeichen maskieren
- 12.11 Debugging-Informationen und Fehler protokollieren
- 12.12 Eindeutige Identifikationsnummern erstellen
- 12.13 Abfragen dynamisch aufbauen
- 12.14 Paginierte Links für eine Gruppe von Datensätzen anzeigen
- 12.15 Ergebnisse und Abfragen cachen
- 12.16 An beliebiger Stelle eines Programms auf eine Datenbankverbindung zugreifen
- 12.17 Programm: Ein Thread-basiertes Forum
-
13. Web-Automatisierung
- 13.0 Einführung
- 13.1 Eine URL mit der GET-Methode abrufen
- 13.2 Eine URL mit der POST-Methode abrufen
- 13.3 Eine URL mit Cookies abrufen
- 13.4 Eine URL mit Headern abrufen
- 13.5 Eine URL über eine beliebige HTTP-Methode abrufen
- 13.6 URL-Anforderung mit Timeout
- 13.7 Eine HTTPS-URL abrufen
- 13.8 Den Datenaustausch auf HTTP-Ebene debuggen
- 13.9 Eine Webseite mit Markup versehen
- 13.10 Links aus einer HTML-Datei extrahieren
- 13.11 ASCII in HTML konvertieren
- 13.12 HTML in ASCII konvertieren
- 13.13 HTML- und PHP-Tags entfernen
- 13.14 Die Protokolldatei eines Webservers analysieren
- 13.15 Auf eine AJAX-Anfrage antworten
- 13.16 Zusammenarbeit mit JavaScript
- 13.17 Programm: Veraltete Links finden
- 13.18 Programm: Aktualisierte Links herausfinden
-
14. XML
- 14.0 Einführung
- 14.1 XML manuell generieren
- 14.2 XML mit DOM generieren
- 14.3 XML-Dokumente mit xmlWriter generieren
- 14.4 Komplexe XML-Dokumente einlesen (DOM)
- 14.5 Große XML-Dokumente einlesen (SAX)
- 14.6 XML mit SimpleXML parsen
- 14.7 Daten zwischen DOM und SimpleXML austauschen
- 14.8 Große XML-Dokumente einlesen (xmlReader)
- 14.9 XML mit XSLT transformieren
- 14.10 PHP-Funktionen in XSL-Stylesheets verwenden
- 14.11 Informationen aus einem XML-Dokument selektieren (XPath)
- 14.12 XML-Dokumente für Menschen lesbar machen
- 14.13 XML-Dokumente aus PHP-Datenstrukturen erzeugen
- 14.14 XML-Dokumente in PHP-Arrays oder Objekte einlesen
- 14.15 XML-Dokumente validieren
- 14.16 Die Inhaltskodierung steuern
- 14.17 XSLT-Parameter aus PHP setzen
-
15. Webservices
- 15.0 Einführung
- 15.1 XML-RPC-Anfragen senden
- 15.2 XML-RPC-Anfragen empfangen
- 15.3 XML-RPC-Anfragen mit der XMLRPCi-Erweiterung senden
- 15.4 SOAP-Anfragen mit einem WSDL-Dokument senden
- 15.5 SOAP-Anfragen ohne ein WSDL-Dokument senden
- 15.6 SOAP-Anfragen empfangen
- 15.7 RSS-Feeds lesen
- 15.8 REST-Anfragen senden
- 15.9 Daten mit WDDX austauschen
-
16. Reguläre Ausdrücke
- 16.0 Einführung
- 16.1 Von ereg zu preg wechseln
- 16.2 Wörter suchen
- 16.3 Den n-ten Match finden
- 16.4 Zwischen gierigem und nicht-gierigem Matching wählen
- 16.5 E-Mail-Adressen validieren
- 16.6 Alle zu einem Muster passenden Zeilen in einer Datei finden
- 16.7 Text innerhalb von HTML-Tags finden
- 16.8 In regulären Ausdrücken Sonderzeichen verwenden
- 16.9 Datensätze lesen, bei denen ein Muster als Separator dient
- 16.10 Verhindern, dass Klammern Text fangen
- 16.11 In einem regulären Ausdruck eine PHP-Funktion nutzen
-
17. Verschlüsselung und Sicherheit
- 17.0 Einführung
- 17.1 Passwörter aus den Dateien Ihrer Site heraushalten
- 17.2 Daten durch Kodierung verschleiern
- 17.3 Daten durch Prüfsummen verifizieren
- 17.4 Passwörter speichern
- 17.5 Überprüfung der Passwortsicherheit
- 17.6 Was tun bei verlorenen Passwörtern?
- 17.7 Daten ver- und entschlüsseln
- 17.8 Verschlüsselte Daten in einer Datei oder Datenbank speichern
- 17.9 Verschlüsselte Daten gemeinsam mit einer anderen Website nutzen
- 17.10 SSL ermitteln
- 17.11 E-Mail mit GPG verschlüsseln
- 17.12 Metazeichen der Shell mit Escape-Zeichen versehen
- 17.13 Session-Fixierung verhindern
- 17.14 Sich gegen Formular-Spoofing schützen
- 17.15 Sicherstellen, dass Eingaben gefiltert werden
- 17.16 Cross-Site-Scripting verhindern
- 17.17 SQL-Injection verhindern
-
18. Grafik
- 18.0 Einführung
- 18.1 Linien, Rechtecke und Vielecke zeichnen
- 18.2 Bogen, Ellipsen und Kreise zeichnen
- 18.3 Unterbrochene Linien zeichnen
- 18.4 Text zeichnen
- 18.5 Zentrierten Text zeichnen
- 18.6 Dynamische Bilder zusammensetzen
- 18.7 Eine transparente Farbe ermitteln und einstellen
- 18.8 Programm: Heraufgeladene Digitalfotos auf Webformat verkleinern
- 18.9 Grafiken geschützt ausgeben
- 18.10 Programm: Aus Umfrageergebnissen Balkendiagramme erstellen
-
19. Internationalisierung und Lokalisierung
- 19.0 Einführung
- 19.1 Vorhandene Locales auflisten
- 19.2 Ein bestimmtes Locale verwenden
- 19.3 Das Default-Locale setzen
- 19.4 Textmeldungen lokalisieren
- 19.5 Datum und Uhrzeiten lokalisieren
- 19.6 Lokalisierung von Währungen
- 19.7 Bilder lokalisieren
- 19.8 Eingebundene Dateien lokalisieren
- 19.9 Lokalisierungsressourcen verwalten
- 19.10 gettext verwenden
- 19.11 Unicode-Zeichen lesen und ausgeben
- 19.12 Die Zeichenkodierung ausgehender Daten setzen
- 19.13 Die Zeichenkodierung eingehender Daten setzen
-
20. Internetdienste
- 20.0 Einführung
- 20.1 E-Mails senden
- 20.2 MIME-Mail senden
- 20.3 E-Mail mit IMAP oder POP3 lesen
- 20.4 Nachrichten an Usenet-Newsgruppen senden
- 20.5 Usenet-Nachrichten lesen
- 20.6 Dateien mit FTP herauf- und herunterladen
- 20.7 Adressen über LDAP abfragen
- 20.8 LDAP zur Benutzer-Authentifizierung verwenden
- 20.9 DNS-Lookups ausführen
- 20.10 Überprüfen, ob ein Host erreichbar ist
- 20.11 Informationen über einen Domainnamen herausfinden
-
21. Dateien
- 21.0 Einführung
- 21.1 Eine lokale Datei erstellen oder öffnen
- 21.2 Eine temporäre Datei erstellen
- 21.3 Eine Datei auf einem entfernten Server öffnen
- 21.4 Eine Datei in einen String einlesen
- 21.5 Einen String in eine Datei schreiben
- 21.6 Die Zeilen, Absätze oder Datensätze in einer Datei zählen
- 21.7 Jedes Wort einer Datei verarbeiten
- 21.8 Eine bestimmte Zeile einer Datei einlesen
- 21.9 Eine Datei zeilen- oder absatzweise in rückwärtiger Reihenfolge bearbeiten
- 21.10 Eine Zeile per Zufall aus einer Datei auswählen
- 21.11 Alle Zeilen einer Datei in eine Zufallsreihenfolge bringen
- 21.12 Textfelder variabler Länge verarbeiten
- 21.13 Konfigurationsdateien einlesen
- 21.14 Von einer bestimmten Stelle einer Datei lesen oder an eine bestimmte Stelle einer Datei schreiben
- 21.15 Die letzte Zeile einer Datei entfernen
- 21.16 Eine Datei an ihrem Platz ohne eine temporäre Datei ändern
- 21.17 Gepufferte Ausgabedaten in eine Datei schreiben
- 21.18 An viele Datei-Handles gleichzeitig schreiben
- 21.19 Einem Programm Eingabedaten durchgeben
- 21.20 Die Standardausgabe eines Programms lesen
- 21.21 Den Standardfehlerkanal eines Programms einlesen
- 21.22 Eine Datei sperren
- 21.23 Komprimierte Dateien lesen und schreiben
- 21.24 Programm: Unzip
-
22. Verzeichnisse
- 22.0 Einführung
- 22.1 Zeitstempel auslesen und setzen
- 22.2 Auf Dateiinformationen zugreifen
- 22.3 Dateiberechtigungen oder Dateieigentümerschaft ändern
- 22.4 Einen Dateinamen in seine Bestandteile zerlegen
- 22.5 Eine Datei löschen
- 22.6 Eine Datei kopieren oder verschieben bzw. umbenennen
- 22.7 Alle Dateien in einem Verzeichnis verarbeiten
- 22.8 Alle Dateinamen finden, die einem Muster entsprechen
- 22.9 Alle Dateien in einem Verzeichnis rekursiv verarbeiten
- 22.10 Dateien eines Verzeichnisses filtern
- 22.11 Neue Verzeichnisse erstellen
- 22.12 Ein Verzeichnis und seinen Inhalt entfernen
- 22.13 Programm: Eine Auflistung des Webserver-Verzeichnisses erstellen
- 22.14 Programm: Site-Suche
-
23. PHP auf der Kommandozeile
- 23.0 Einführung
- 23.1 Programmparameter parsen
- 23.2 Programmparameter mit Console_Getopt oder Console_Getargs parsen
- 23.3 Von der Tastatur lesen
- 23.4 Passwörter einlesen
- 23.5 Die Ausgabe eines Kommandozeilen-Befehls weiterverarbeiten
- 23.6 Dateien zeilenweise verarbeiten
- 23.7 Prozesse forken
- 23.8 Einen Server programmieren
-
24. PEAR und PHAR
- 24.0 Einführung
- 24.1 PEAR installieren
- 24.2 Den PEAR Package Manager verwenden
- 24.3 PEAR-Pakete installieren und deinstallieren
- 24.4 PEAR-Pakete upgraden
- 24.5 PECL-Pakete installieren
- 24.6 Pakete aus anderen Channels installieren
- 24.7 PEAR in Shared-Hosting-Umgebungen installieren
- 24.8 Eigene PEAR-Pakete erstellen
- 24.9 Eigene Pakete über einen Channel-Server vertreiben
- 24.10 Ein PHP-Archiv (PHAR) erstellen
- 24.11 Auf Inhalte in einem PHP-Archiv (PHAR) zugreifen
- 24.12 Ein PHP-Archiv (PHAR) direkt ausführen
- A. Über die amerikanischen Autoren
- B. Über die deutschen Autoren
- Stichwortverzeichnis
- Kolophon
Product information
- Title: PHP 5 Kochbuch, Third Edition
- Author(s):
- Release date: September 2009
- Publisher(s): O'Reilly Verlag
- ISBN: 97833897219045
You might also like
book
PHP programmieren unter Windows
Mit PHP 5.3 hat die Zusammenarbeit von Microsoft mit dem PHP-Entwicklerteam einen Meilenstein erreicht. Das PHP-Windows-Team …
book
CSS Kochbuch, 3rd Edition
Cascading Style Sheets (CSS) gelten als Mittel der Wahl, wenn es darum geht, die Darstellung einer …
book
PHP for the Web: Visual QuickStart Guide, Fourth Edition
With PHP for the World Wide Web, Fourth Edition: Visual QuickStart Guide, readers can start from …
book
CSS bez tajemnic
Pierwsza specyfikacja standardu CSS została opublikowana w 1996 roku. Była bardzo krótka, zwięzła i stosunkowo prosta, …