Haupt PHP8+ Tutorial
Grundlagen
Einführung in die Sprache PHP
Erste Schritte
Ausführung von PHP-Code
Problem mit Kodierungen
Ausgabe von PHP-Fehlern
Vollständiger Code zum Starten von PHP
Verbesserter Startcode
Überblick über erste PHP-Befehle
Kommentare in PHP
Kommentare im Lehrbuch
Dumping von Variablen
Funktionen in PHP
Variablen
Verwendung von Variablen
Ändern von Variablenwerten
Mathematische Operationen mit Zahlen
Mathematische Operationen mit Variablen
Priorität mathematischer Operationen
Gleiche Priorität
Gruppierende Klammern
Nuancen der Gruppierung
Brüche
Negative Zahlen
Rest der Division
Potenzieren
Priorität der Potenzierung
Zeichenketten
Verkettung von Zeichenketten
Leerzeichen bei der Zeichenkettenverkettung
Länge einer Zeichenkette
Problem mit Kyrillisch
Tags
Tag-Attribute
Boolesche Werte
Der Wert null
Automatische Typumwandlung
Automatische Umwandlung in eine Zeichenkette
Nuancen der Umwandlung in eine Zeichenkette
Umwandlung in eine Zahl
Umwandlung in einen Bruch
Umwandlung eines Bruchs in eine Ganzzahl
Umwandlung einer Zahl in eine Zeichenkette
Zeichen einer Zeichenkette
Ziffern in einer Zeichenkette
Zugriff auf Ziffern einer Zahl
Nuancen der Zuweisungsoperation
Verkürzte Operationen
Inkrementierung
Präfix- und Postfix-Typ
Praxis: Fehlersuche
Praxis: Operationen
Praxis: Formeln
Arrays
Einführung in Arrays
Anzeigen des Array-Inhalts
Einzelnes Array-Element
Assoziative Arrays
Trick mit Schlüsseln
Reihenfolge der Elemente
Array-Länge
Ändern von Elementen
Überschreiben von Array-Elementen
Inkrementieren von Elementen
Arrays füllen
Explizite Schlüsselangabe
Schlüssel aus Variablen
Praxis: Fehlersuche
Bedingungen
if-else-Konstrukt
Operatoren für größer und kleiner
Überprüfung auf Gleichheit
Überprüfung auf Ungleichheit
Variablenvergleich
Datentypen und das if-else-Konstrukt
Zahlen in Anführungszeichen
Gleichheit von Wert und Typ
Ungleichheit von Wert und Typ
Nuancen beim Vergleich von Datentypen
Komplexe Bedingungen in if-else
Logisches UND
Logisches ODER
Priorität von Vergleichsoperationen
Gruppierung von Bedingungen
Invertieren von Aussagen
if-else-Konstrukt und boolesche Werte
Nicht-strenge Vergleich von booleschen Werten
Verkürztes if
Nuance verkürzter Operationen
Befehl isset
Unterdrückung von Warnungen
Überprüfung von Array-Elementen
Befehl empty
Optionalität des else-Befehls
Optionalität der geschweiften Klammern
Problem der optionalen Klammern
Kombinationen von if-else
elseif-Konstrukt
Verschachtelte if-Anweisungen
switch-Konstrukt
Optionalität von default
match-Konstrukt
Optionalität von break
Ternärer Operator
Null-Koaleszenz-Operator
Verkettung von Null-Koaleszenz-Operatoren
Logische Operationen
Bestimmung des Stundenanteils
Überprüfung der Länge von Strings und Arrays
Überprüfung eines String-Zeichens
Überprüfung des Restes der Division
Praxis zur Fehlersuche
if else Praxis
Schleifen
Einführung
Schleife foreach
Schleife foreach mit Schlüsseln
Schleife while
Schleife for
Bedingungen in Schleifen
Akkuumulation von Zahlensummen
Akkuumulation von Elementensummen
Zeichenkettenbildung in Schleifen
Optionalität der geschweiften Klammern
Problem der optionalen Klammern
Anweisung break
Anweisung continue
Arbeit mit Flags
Verschachtelte Schleifen
Schleife for für Arrays
Arrays in Schleifen füllen
Arrays in Schleifen ändern
Tipps zur Codeerstellung
Praxis zur Fehlersuche
Praxis zu Schleifen
Mehrdimensionalität
Einführung
Mehrdimensionales Array
Assoziative Arrays
Beliebige Arrays
Iteration über mehrdimensionale Arrays
Iteration über ein dreidimensionales Array
Arbeit mit Schlüsseln
Füllen mehrdimensionaler Arrays
Füllen mit Zahlen der Reihe nach
Array von assoziativen Arrays
Konvertierung mehrdimensionaler Arrays
Mathematische Funktionen
Zeichenkettenfunktionen
Länge einer Zeichenkette
Groß-/Kleinschreibung
Ausschneiden von Zeichenketten
Überprüfung von Zeichenketten
Suche in Zeichenketten
Zerlegen von Zeichenketten
Bereinigen der Enden einer Zeichenkette
Ausgabe einer Zeichenkette mit Einfügung
Formatierung der ZahlenDarstellung
Umkehren einer Zeichenkette
Auffüllen einer Zeichenkette
Arbeiten mit Tags
Zeichencodes
Zählen von Teilzeichenketten
Teile von Zeichenketten
Array-Funktionen
Suche in Arrays
Endelemente
Array-Slicing
Array-Splicing
Bereich in Arrays
Arrays füllen
Array-Zusammenführung
Schlüssel-Werte
Umkehrung
Ersetzung
Entfernung von Duplikaten
Elemente zählen
Aufteilung in Subarrays
Sortierung
Mengenoperationen
Zufall
Zeit
Arbeit mit Timestamp
Formatierung
Parsen von Datumsangaben im Freitextformat
Korrektheitsprüfung
Zeitzone
Änderung
String-Vergleich
Datumswergleich ohne Jahr
Treffen eines Datums in einem Intervall
Timestamp-Vergleich
Benutzerdefinierte Funktionen
Einführung
Funktionsparameter
Mehrere Parameter
Variablen als Parameter
Optionale Parameter
Anweisung return
Sequentieller Funktionsaufruf
Eine Feinheit von return
Schleife und return
Anwendung von return in Schleifen
Arbeitstechnik mit return
Flags in Funktionen
Logische Operatoren in Funktionen
Ratschläge zu Funktionen
Praxis: Fehlersuche
Praxis zu Funktionen
Geltungsbereich
Referenzen-Primitive
Referenzen-Arrays
Referenzen in foreach
Interne Variablen
Externe Variablen
Gleichnamige Variablen
Globale Variablen
Ändern von Parametern
Parameter-Referenzen
Rekursion
Rekursion
Beispiel mit Parameter
Summe der Array-Elemente
Rekursion und mehrdimensionale Arrays
Summe eines mehrdimensionalen Arrays
Manipulation von Elementen
Reguläre Ausdrücke
Einführung
Wiederholungsoperatoren
Gruppierende Klammern
Maskierung von Sonderzeichen
Liste der Sonderzeichen
Geschweifte Klammern
Einschränkung der Gierigkeit
Zeichengruppen
Zeichenmengen
Invertierung von Zeichenmengen
Besonderheiten der Kyrillischen Schrift
Sonderzeichen innerhalb von Mengen
Zeichengruppen innerhalb von Mengen
Ausschließende Sonderzeichen innerhalb von Mengen
Das Zirkumflex-Zeichen innerhalb von Mengen
Besonderheiten des Bindestrichs innerhalb von Mengen
Anfang und Ende der Zeile
Ende oder Anfang eines Wortes
Der 'Oder'-Befehl
Begrenzer
Maskierung von Begrenzern
Backslash
Überprüfung der Zeichenkette
Automatisches Testen von regulären Ausdrücken
Überprüfung der gesamten Zeichenkette
Capturing Groups bei der Suche
Suche nach allen Übereinstimmungen
Alle Übereinstimmungen auf Capturing Groups
Änderung des Suchverhaltens
Nicht-erfassende Klammern
Capturing Groups beim Ersetzen
Capturing Groups im Ausdruck
Benannte Capturing Groups
Benannte Capturing Groups innerhalb des Ausdrucks
Gemeinsame Nummer der Capturing Groups
Lookahead
Lookbehind
Ersetzen mit Callback
Modifikatoren
Groß-/Kleinschreibung ignorieren
Kommentare im regulären Ausdruck
Arbeit mit Unicode in regulären Ausdrücken
Änderung der Gierigkeit regulärer Ausdrücke
Maskierung gewöhnlicher Zeichen in regulären Ausdrücken
Mehrere Modifikatoren für reguläre Ausdrücke
Automatische Maskierung von Sonderzeichen
Filtern von Arrays
Aufteilung einer Zeichenkette in ein Array
Stringbildung
Einfügen von Variablen
Einfügen von Array-Elementen
Einfügen von Elementen assoziativer Arrays
Schleife und Einfügen von Variablen
Einfügen von Array-Elementen in einer Schleife
Einfügen von Elementen mehrdimensionaler Arrays in einer Schleife
Tag-Generierung
Generierung von Tags mit Attributen
Schleife und Tag-Generierung
Schleife und Generierung von Tags aus Arrays
Schleife und Generierung von Tags und Attributen
Schleife und Generierung von HTML-Tabellen
Generierung einer HTML-Tabelle mit einer Schleife
Generierung einer HTML-Tabelle mit zwei verschachtelten Schleifen
Einfügen von PHP-Code in HTML
Kurzer Echo-Befehl
Ausgabe einer Variable in HTML
Ausgabe von Array-Elementen in HTML
Bedingungen und Abbruch von PHP-Code
Else-Block beim Abbruch von PHP-Code
Elseif-Block beim Abbruch von PHP-Code
Schleifen und Abbruch von PHP-Code
Array in einer Schleife beim Abbruch von PHP-Code
Formulare
Einführung in Formulare
Methode zum Absenden des Formulars
Erhalten von Formulardaten
Erhalten von Formulardaten mit GET-Methode
Erhalten von Formulardaten mit POST-Methode
Formularverarbeitung in einer Datei
Ausblenden des Formulars nach dem Absenden
Beibehalten der Formularwerte
Beibehalten des Standardwerts im Formular
Verkürzter Code zum Beibehalten der Standardwerte
Das textarea-Element
Wert in textarea nach dem Absenden beibehalten
Checkbox
Nuancen bei der Verwendung von Checkboxen
Wert in der Checkbox beibehalten
Radio-Buttons
Wert in Radio-Buttons beibehalten
Select-Elemente
Das value-Attribut in Select-Elementen
Wert in Select-Elementen beibehalten
GET-Anfragen
GET-Anfragen mit Links
Praxis
Sessions
Einführung in Sessions
Mögliche Probleme
Verwendung von Sessions auf einer einzelnen Seite
Löschen von Sessions
Beenden der gesamten Session
Sessions und Formulare
Schreiben von Arrays in Sessions
Cookies
Einführung in Cookies
Problem beim Setzen von Cookies
Sofortiges Setzen von Cookies
Seitenneuladezähler
Lebensdauer von Cookies
Entfernen von Cookies
Sofortiges Entfernen von Cookies
Dateisystem
Dateien lesen
Dateien schreiben
Kombination von Operationen
Relative Pfade
Absolute Pfade
Vorteile absoluter Pfade
Absolute Pfade zum Skript
Dateien umbenennen
Dateien verschieben
Dateien kopieren
Dateien löschen
Dateigröße bestimmen
Überprüfung der Dateiexistenz
Ordner erstellen
Ordner löschen
Ordner umbenennen
Ordner verschieben
Ordnerinhalt lesen
Ordner von Datei unterscheiden
Ordnerinhalt analysieren
Dateien einfügen
Aufteilung des Markups in Elemente
Einfügen in Variable schreiben
Dateien einbinden
Einmaliges Einbinden von Dateien
Einbinden in Variable schreiben
Datenbanken
Einführung in Datenbanken
PhpMyAdmin
Testtabelle users
Vorbereitende Manipulationen
Senden von Abfragen an die Datenbank
Fehlersuche in der Datenbank
Test der Funktionsfähigkeit
Probleme mit Zeichensätzen
Vollständiger Testcode
Erhalten des Ergebnisses
Erhalten des Ergebnisses als Array
Bildung eines Arrays in einer Schleife
Auswahl von Datensätzen
Logische Operationen
Auswahlfelder
Einfügen von Datensätzen
Einfügen von Datensätzen bei fehlenden Spalten
Aktualisieren von Datensätzen
Löschen von Datensätzen
Sortieren von Datensätzen
Begrenzung der Anzahl
Zählen der Anzahl
Erhalten der Anzahl
Erweiterte Abfragen
Datenbankorganisation
Tabellen verknüpfen
Daten aus verknüpften Tabellen abrufen
Kette verknüpfter Tabellen
Verknüpfung über eine Verknüpfungstabelle
Familienbeziehungen
Mehrere Nachkommen
Doppelbeziehung
Praktikum
Datenbank-Praxis
Testtabelle users
Gestaltung der Ausgabe
Daten löschen
Daten anzeigen
Daten hinzufügen
Daten bearbeiten
Arbeiten mit HTTP
HTTP-Tutorial
HTTP-Anfragemethode
HTTP-Anfrageheader
Array der HTTP-Anfrageheader
HTTP-Antwortheader
Problem mit HTTP-Antwortheadern
Problem mit include
Auslieferung der Startzeile der HTTP-Antwort
Auslieferung des HTTP-Antwortstatus
Weiterleitungen
Einführung in Weiterleitungen
Sofortige Weiterleitung
GET-Anfragen und Weiterleitung
Selbstweiterleitung mit Hinzufügung von Parametern
Flash-Nachrichten
Array von Flash-Nachrichten
Speicherung von Formularen
Erfolgsmeldungen beim Absenden
Weiterleitung bei Formularvalidierung
Authentifizierung
Einführung
Autorisierung
Sitzungen
Abmelden
Registrierung
Sofortige Autorisierung bei der Registrierung
Hinzufügen der ID zur Sitzung
Passwort verbergen
Überprüfung der Login-Verfügbarkeit
Validierung
Hash-Verfahren
Hinzufügen eines Salzes bei der Registrierung
Hinzufügen eines Salzes bei der Authentifizierung
Funktion password_hash
Profil
Account
Passwortänderung
Passwortbestätigung
Account löschen
Berechtigungen
Registrierung mit Berechtigungstrennung
Berechtigungen und Datenbanknormalisierung
Website-Engine
Einführung
Verwendung von htaccess
Dateibasierte Engine
Titel in der dateibasierten Engine
Titel im Array
Titel im Inhalt
Fehlerseite 404 in der dateibasierten Engine
Datenbankbasierte Engine
Benutzerfreundliche URLs in der Engine
Einfaches Routing
Routing mit benannten Parametern
Mehrere Parameter in der Route
Praktikum