Tutoriel principal PHP8+
Bases
Introduction au langage PHP
Débuter avec PHP
Exécution du code PHP
Problème d'encodage
Affichage des erreurs PHP
Code complet pour lancer PHP
Code de lancement amélioré
Aperçu des commandes PHP de base
Commentaires en PHP
Commentaires dans le manuel
Dump des variables
Fonctions en PHP
Variables
Utilisation des variables
Modification des valeurs des variables
Opérations mathématiques avec des nombres
Opérations mathématiques avec des variables
Priorité des opérations mathématiques
Priorité égale
Parenthèses de regroupement
Nuances de regroupement
Fractions
Nombres négatifs
Reste de la division
Puissance
Priorité de la puissance
Chaînes de caractères
Concaténation de chaînes
Espaces dans la concaténation de chaînes
Longueur d'une chaîne
Problème avec le cyrillique
Balises
Attributs des balises
Valeurs booléennes
Valeur null
Conversion automatique des types
Conversion automatique en chaîne
Nuances de la conversion en chaîne
Conversion en nombre
Conversion en fraction
Conversion d'une fraction en entier
Conversion d'un nombre en chaîne
Caractères d'une chaîne
Chiffres dans une chaîne
Accès aux chiffres d'un nombre
Nuances de l'opération d'affectation
Opérations raccourcies
Incrémentation
Type préfixe et postfixe
Pratique de la recherche d'erreurs
Pratique sur les opérations
Pratique sur les formules
Tableaux
Introduction aux tableaux
Affichage du contenu d'un tableau
Élément individuel d'un tableau
Tableaux associatifs
Astuce avec les clés
Ordre des éléments
Longueur d'un tableau
Modification des éléments
Réécriture des éléments d'un tableau
Incrémentation d'éléments
Remplissage des tableaux
Assignation explicite des clés
Clés à partir de variables
Pratique de recherche d'erreurs
Conditions
Structure if-else
Opérateurs supérieur et inférieur
Vérification d'égalité
Vérification d'inégalité
Comparaison de variables
Types de données et structure if-else
Nombres entre guillemets
Égalité en valeur et en type
Inégalité en valeur et en type
Nuances lors de la comparaison des types de données
Conditions complexes dans if-else
ET logique
OU logique
Priorité des opérations de comparaison
Regroupement de conditions
Inversion des expressions
Structure if-else et valeurs booléennes
Comparaison faible des valeurs logiques
If raccourci
Nuance des opérations raccourcies
Commande isset
Suppression des avertissements
Vérification des éléments d'un tableau
Commande empty
Caractère optionnel de la commande else
Caractère optionnel des accolades
Problème du caractère optionnel des accolades
Combinaisons if-else
Structure elseif
If imbriqués
Structure switch
Caractère optionnel de default
Structure match
Caractère optionnel de break
Opérateur ternaire
Opérateur de coalescence nulle
Chaînage des opérateurs de coalescence nulle
Opérations logiques
Détermination de la partie de l'heure
Vérification de la longueur des chaînes et des tableaux
Vérification du caractère d'une chaîne
Vérification du reste d'une division
Pratique de recherche d'erreurs
Pratique if else
Boucles
Introduction
Boucle foreach
Boucle foreach avec clés
Boucle while
Boucle for
Conditions dans les boucles
Accumulation de la somme des nombres
Accumulation de la somme des éléments
Formation de chaînes dans une boucle
Caractère facultatif des accolades
Problème du caractère facultatif des accolades
Instruction break
Instruction continue
Travail avec des drapeaux
Boucles imbriquées
Boucle for pour les tableaux
Remplissage des tableaux en boucle
Modification des tableaux en boucle
Conseils pour écrire du code
Pratique de recherche d'erreurs
Pratique sur les boucles
Multidimensionnalité
Introduction
Tableau tridimensionnel
Tableaux associatifs
Tableaux arbitraires
Parcours de tableaux multidimensionnels
Parcours d'un tableau tridimensionnel
Manipulation des clés
Remplissage de tableaux multidimensionnels
Remplissage avec des nombres séquentiels
Tableau de tableaux associatifs
Conversion de tableaux multidimensionnels
Fonctions mathématiques
Fonctions de chaînes
Longueur d'une chaîne
Casse des caractères
Découpage de chaînes
Vérification de chaînes
Recherche dans les chaînes
Fractionnement de chaînes
Nettoyage des extrémités d'une chaîne
Affichage d'une chaîne avec insertion
Formatage de la représentation des nombres
Inversion d'une chaîne
Remplissage d'une chaîne
Travail avec les balises
Codes des caractères
Comptage de sous-chaînes
Parties de chaînes
Fonctions sur les tableaux
Recherche dans les tableaux
Éléments aux extrémités
Découpage de tableaux
Éclatement de tableaux
Plage dans un tableau
Remplissage de tableaux
Fusion de tableaux
Clés-valeurs
Inversion
Remplacement
Suppression des doublons
Comptage d'éléments
Découpage en sous-tableaux
Tri
Opérations ensemblistes
Aléatoire
Temps
Travail avec les timestamp
Formatage
Analyse des dates en format libre
Vérification de la correction
Fuseau horaire
Modification
Comparaison de chaînes
Comparaison de date sans l'année
Appartenance d'une date à un intervalle
Comparaison de timestamp
Fonctions personnalisées
Introduction
Paramètres de fonction
Plusieurs paramètres
Paramètres-variables
Paramètres optionnels
Instruction return
Appel séquentiel de fonctions
Point délicat de return
Boucle et return
Utilisation de return dans les boucles
Astuce de travail avec return
Drapeaux dans les fonctions
Opérateurs logiques dans les fonctions
Conseils sur les fonctions
Pratique pour trouver les erreurs
Pratique sur les fonctions
Portée
Références-primitives
Références-tableaux
Références dans foreach
Variables internes
Variables externes
Variables homonymes
Variables globales
Modification des paramètres
Paramètres-références
Récursion
Récursion
Exemple avec paramètre
Somme des éléments d'un tableau
Récursion et tableaux multidimensionnels
Somme d'un tableau multidimensionnel
Manipulations des éléments
Expressions régulières
Introduction
Opérateurs de répétition
Parenthèses de regroupement
Échappement des caractères spéciaux
Liste des caractères spéciaux
Accolades
Limitation de la gourmandise
Groupes de caractères
Ensembles de caractères
Inversion des ensembles de caractères
Particularités du cyrillique
Caractères spéciaux dans les ensembles
Groupes de caractères dans les ensembles
Caractères spéciaux d'exclusion dans les ensembles
Symbole du chapeau dans les ensembles
Particularités du trait d'union dans les ensembles
Début et fin de ligne
Fin ou début de mot
Commande 'ou'
Délimiteurs
Échappement des délimiteurs
Barre oblique inverse
Vérification de chaîne
Test automatique des expressions régulières
Vérification de la chaîne entière
Captures lors de la recherche
Recherche de toutes les correspondances
Toutes les correspondances en captures
Modification du comportement de recherche
Parenthèses non capturantes
Captures lors du remplacement
Captures dans l'expression
Captures nommées
Captures nommées dans l'expression
Numéro commun des captures
Regard vers l'avant
Regard vers l'arrière
Remplacement par callback
Modificateurs
Ignorer la casse des expressions régulières
Commentaires dans l'expression régulière
Travail avec Unicode dans les expressions régulières
Modification de la gourmandise des expressions régulières
Échappement des caractères réguliers dans les expressions régulières
Plusieurs modificateurs d'expressions régulières
Échappement automatique des caractères spéciaux
Filtrage de tableau
Division de chaîne en tableau
Formation de chaînes
Insertion de variables
Insertion d'éléments de tableau
Insertion d'éléments de tableaux associatifs
Boucle et insertion de variables
Insertion d'éléments de tableaux dans une boucle
Insertion d'éléments de tableaux multidimensionnels dans une boucle
Génération de balises
Génération de balises avec attributs
Boucle et génération de balises
Boucle et génération de balises à partir de tableaux
Boucle et génération de balises et d'attributs
Boucle et génération de tableaux HTML
Génération d'un tableau HTML à l'aide d'une seule boucle
Génération d'un tableau HTML à l'aide de deux boucles imbriquées
Insertion de code PHP dans HTML
Commande echo courte
Sortie de variable en HTML
Sortie d'éléments de tableau en HTML
Conditions et rupture du code PHP
Bloc else dans la rupture du code PHP
Bloc elseif dans la rupture du code PHP
Boucles et rupture du code PHP
Tableau en boucle dans la rupture du code PHP
Formulaires
Introduction aux formulaires
Méthode d'envoi du formulaire
Récupération des données de formulaire
Récupération des données de formulaire par la méthode GET
Récupération des données de formulaire par la méthode POST
Traitement du formulaire dans un seul fichier
Masquage du formulaire après l'envoi
Conservation des valeurs du formulaire
Conservation de la valeur par défaut du formulaire
Code raccourci pour la conservation des valeurs par défaut
Élément textarea
Conservation de la valeur de textarea après l'envoi
Case à cocher
Nuances de l'utilisation des cases à cocher
Conservation de la valeur dans une case à cocher
Boutons radio
Conservation de la valeur dans les boutons radio
Listes déroulantes
Attribut value dans les listes déroulantes
Conservation de la valeur dans les listes déroulantes
Requêtes GET
Requêtes GET via des liens
Pratique
Sessions
Introduction aux sessions
Problèmes possibles
Utilisation des sessions sur une seule page
Suppression des sessions
Destruction de toute la session
Sessions et formulaires
Enregistrement de tableaux dans les sessions
Cookies
Introduction aux cookies
Problème de définition des cookies
Définition instantanée des cookies
Compteur de rechargement de page
Durée de vie d'un cookie
Suppression des cookies
Suppression instantanée des cookies
Système de fichiers
Lecture de fichiers
Écriture de fichiers
Combinaison d'opérations
Chemins relatifs
Chemins absolus
Avantages du chemin absolu
Chemins absolus vers le script
Renommage de fichiers
Déplacement de fichiers
Copie de fichiers
Suppression de fichiers
Détermination de la taille des fichiers
Vérification de l'existence des fichiers
Création de dossiers
Suppression de dossiers
Renommage de dossiers
Déplacement de dossiers
Lecture du contenu d'un dossier
Distinguer un dossier d'un fichier
Analyser le contenu d'un dossier
Insertion de fichiers
Division du balisage en éléments
Écriture de l'insertion dans une variable
Inclusion de fichiers
Inclusion unique de fichiers
Écriture de l'inclusion dans une variable
Bases de données
Introduction aux bases de données
PhpMyAdmin
Table de test users
Manipulations préparatoires
Envoi de requêtes à la base de données
Recherche d'erreurs dans la base de données
Test de fonctionnement
Problèmes d'encodage
Code de test complet
Obtention du résultat
Obtention du résultat sous forme de tableau
Formation d'un tableau en boucle
Sélection d'enregistrements
Opérations logiques
Champs de sélection
Insertion d'enregistrements
Insertion d'enregistrements en l'absence de colonnes
Mise à jour d'enregistrements
Suppression d'enregistrements
Tri des enregistrements
Limitation de la quantité
Comptage de la quantité
Obtention du compte
Requêtes avancées
Organisation des bases de données
Liaison de tables
Récupération de données à partir de tables liées
Chaîne de tables liées
Liaison via une table de relation
Liens de parenté
Plusieurs descendants
Relation double
Pratique
Pratique Base de Données
Table utilisateurs de test
Formatage de la sortie
Suppression des données
Consultation des données
Ajout de données
Édition des données
Travail avec HTTP
Tutoriel HTTP
Méthode de requête HTTP
En-têtes de requête HTTP
Tableau des en-têtes de requête HTTP
En-têtes de réponse HTTP
Problème avec les en-têtes de réponse HTTP
Problème avec include
Envoi de la ligne de début de réponse HTTP
Envoi du statut de réponse HTTP
Redirections
Introduction aux redirections
Redirection instantanée
Requêtes GET et redirection
Auto-redirection avec ajout de paramètres
Messages flash
Tableau de messages flash
Sauvegarde des formulaires
Messages de succès d'envoi
Redirection lors de la validation du formulaire
Authentification
Introduction
Autorisation
Sessions
Déconnexion de la session
Inscription
Autorisation immédiate lors de l'inscription
Ajout de l'id dans la session
Masquage du mot de passe
Vérification de la disponibilité du login
Validation
Hachage
Ajout de sel dans l'inscription
Ajout de sel dans l'authentification
Fonction password_hash
Profil
Compte
Changement du mot de passe
Confirmation du mot de passe
Suppression du compte
Droits
Inscription avec séparation des droits
Droits et normalisation de la base de données
Moteur de site
Introduction
Utilisation de htaccess
Moteur sur fichiers
Titre dans le moteur sur fichiers
Titres dans un tableau
Titres dans le contenu
Page 404 dans le moteur sur fichiers
Moteur sur base de données
URLs lisibles dans le moteur
Routage simple
Routage avec paramètres nommés
Plusieurs paramètres dans la route
Pratique