Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

SOMMAIRE

Introduction

  1. Présentation du cours
  2. Introduction au PHP
  3. Mettre en place un env. de travail

Les bases en PHP

  1. Syntaxe de base du PHP
  2. Premières instructions PHP
  3. Introduction aux variables PHP
  4. Types de valeurs et concaténation
  5. Opérations sur les variables
  6. Conditions et opérateurs de comparaison
  7. Les conditions if, if...else et if... elseif... else
  8. Utilisation avancée des conditions
  9. Structures ternaires et switch
  10. Les boucles PHP
  11. Découverte des fonctions
  12. La portée des variables
  13. Les constantes PHP
  14. Les variables tableaux PHP
  15. Tableaux associatifs
  16. Tableaux multidimensionnels
  17. Test n°1

Gestion des dates en PHP

  1. Le timestamp
  2. Obtenir et formater une date
  3. Tester la validité d'une date
  4. Test n°2

Opérations sur les fichiers en PHP

  1. Lire, ouvrir, fermer un fichier
  2. Parcourir et lire un fichier par partie
  3. Créer un fichier et écrire dedans
  4. Ecrire dans un fichier
  5. Les instructions include et require
  6. Test n°3

Les variables superglobales

  1. Découverte des variables superglobales
  2. Les cookies
  3. Les sessions
  4. Test n°4

Les expressions régulières et PHP

  1. Découverte des regex
  2. Les fonctions PHP PCRE
  3. Quantifieurs et options
  4. Classes de caractères
  5. Test n°5

L'orienté objet en PHP

  1. Classes, instances et objets
  2. Propriétés et méthodes
  3. Extension de classe et héritage
  4. Le principe d'encapsulation
  5. La méthode constructeur
  6. L'opérateur de résolution de portée et la surcharge
  7. Constantes, méthodes et propriétés statiques
  8. Les classes et méthodes abstraites
  9. Les interfaces
  10. Les méthodes magiques
  11. Le chainage de méthodes
  12. Test n°6

Notions avancées en POO

  1. Le typage explicite
  2. Les traits
  3. Les closures et les classes anonymes
  4. L'auto-chargement des classes
  5. Le mot clef final
  6. Résolution statique à la volée
  7. Parcourir des objets
  8. Le clonage d'objets
  9. Comparaison d'objets
  10. Test n°7

Filtres, erreurs et exceptions

  1. Introduction aux filtres
  2. Utilisation pratique des filtres
  3. Gérer les erreurs en PHP
  4. Gérer les exceptions en PHP

LES FONCTIONS PHP PCRE

Découverte des fonctions PCRE

Le PHP dispose de fonctions qui vont nous permettre d’exploiter toute la puissance des expressions régulières.

Les fonctions PHP relatives aux regex commencent toutes par preg_.

Voici la liste de ces fonctions, que nous allons étudier par la suite, ainsi qu’une courte description de leur action.

Fonction Description
preg_filter() Recherche et remplace
preg_grep() Recherche et retourne un tableau avec les résultats
preg_last_error() Retourne le code d’erreur de la dernière regex exécutée
preg_match() Compare une regex à une chaine de caractères
preg_math_all() Compare une regex à une chaine de caractères et renvoie tous les résultats
preg_quote() Echappe les caractères spéciaux dans une chaine
preg_replace() Recherche et remplace
Preg_replace_callback() Recherche et remplace en utilisant une fonction de rappel
preg_split() Découpe une chaine

Dans cette partie, nous allons voir comment utiliser chacune de ces fonctions. Nous approfondirons par la suite le sujet des expressions régulières en soi.

Les fonctions PHP preg_match() et preg_match_all()

Les fonctions preg_match() et preg_match_all() vont rechercher un schéma dans une chaine de caractères.

Ces deux fonctions vont prendre en arguments le schéma de recherche (qui sera une regex dans notre cas) ainsi que la chaine de caractère dans laquelle la recherche doit être faite.

La fonction preg_match() va renvoyer la valeur 1 si le schéma recherché est trouvé dans la chaine de caractères ou 0 dans le cas contraire.

La fonction preg_match_all() va renvoyer le nombre total de fois où le schéma de recherche a été trouvé dans la chaîne de caractères sous forme de tableau.

Utilisation des fonctions PHP preg_match() et preg_match_all()

On cherche une correspondance avec preg_match() en PHP

Dans l’exemple précédent, nous utilisons le schéma de recherche /r/.

On utilise ensuite preg_match() au sein d’un if. On demande à preg_match() de rechercher un r dans la chaine de caractères contenue dans $txt.

Si preg_match() trouve effectivement un r, elle renvoie 1 (qui va être évalué à true) et on rentre dans le if. Dans le cas contraire, notre fonction renvoie 0 (qui est évalué à false, rappelons le) et on entre dans le else.

Notez bien une nouvelle fois qu’on utilise ici le fait que le PHP évalue le chiffre 1 à true et le chiffre 0 à false.

Au sein du if, on utilise ensuite la fonction preg_match_all() pour compter le nombre de fois que le schéma r est rencontré dans notre chaine de caractères. Notez que nous n’exécutons preg_match_all() que si preg_match() renvoie 1, c’est-à-dire uniquement s’il y a au moins un r dans notre chaine.

Nous allons également pouvoir passer un troisième argument à nos fonctions preg_match() et preg_match_all().

Cet argument va prendre la forme d'une variable tableau qui va stocker les résultats trouvés. Dans le cas de preg_match(), seul le premier résultat est stocké. Dans le cas de preg_match_all(), tous les résultats sont stockés.

 Utilisation des fonctions PHP preg_match() et preg_match_all() et récupération des résultats

On récupère les résultats de preg_match_all() sous forme de tableau

Dans le cas de la recherche d’une lettre simple cela ne présente pas beaucoup d’intérêt, je vous l’accorde. Cependant, lorsque nous saurons construire des regex plus complexes, vous comprendrez l’intérêt de récupérer les résultats.

Profitez en pour noter que le tableau créé par preg_match_all() est un tableau multidimensionnel.

Les fonctions PHP preg_filter(), preg_replace() et preg_replace_callback()

La fonction preg_filter() va nous permettre d’effectuer une recherche dans une chaine de caractères selon un schéma de recherche et de remplacer les correspondances par une autre chaine.

On va passer trois arguments à cette fonction : un schéma de recherche, une chaine de remplacement et la chaine dans laquelle faire la recherche.

La fonction preg_filter() va ensuite renvoyer la chaine transformée. Attention : la chaine de départ ne sera pas modifiée.

Utilisation de la fonction PHP preg_filter()

On utilise preg_filter() pour effectuer des recherches et des remplacements dans une chaine

Ici, on se sert de preg_filter() pour rechercher le schéma jour dans notre chaine de caractères. Dans le cas où il est trouvé, on le remplace par la chaine soir dans le résultat retourné.

Encore une fois, notre chaine de départ n’est pas modifiée en soi. On peut le voir lorsqu’on echo le contenu de notre variable $txt après avoir utilisé preg_filter().

La fonction preg_replace() va fonctionner exactement comme preg_filter(). La seule différence entre ces deux fonctions va être dans la valeur retournée si le schéma de recherche n’est pas trouvé dans la chaine de caractères.

En effet, dans ce cas là, la fonction preg_filter() va renvoyer la valeur null (correspondant à l’absence de valeur) tandis que preg_replace() va renvoyer la chaine de caractères de départ.

Utilisation des fonctions PHP preg_filter() et preg_replace()

On utilise les fonctoins preg_filter() et preg_replace() pour effectuer des recherches et remplacements

Finalement, la fonction preg_replace_callback() va avoir le même principe de fonctionnement que preg_replace(), à la différence qu’à la place d’une valeur de remplacement nous allons devoir préciser une fonction de rappel.

Ce sujet est un peu complexe à votre niveau et je ne veux pas vous embrouiller davantage pour la moment, nous laisserons donc cette fonction de côté pour l’instant.

La fonction PHP preg_grep()

La fonction preg_grep() va nous permettre de rechercher un certain schéma dans un tableau. Les résultats trouvés (les correspondances) seront renvoyés dans un nouveau tableau en conservant les indices du premier tableau.

Utilisation de la fonction PHP preg_grep()

On utilise la fonction PHP preg_grep() pour rechercher un schéma dans un tableau

La fonction PHP preg_split()

La fonction preg_split() va éclater une chaine de caractères en tableau selon un schéma de recherche.

A chaque fois que le schéma de recherche est trouvé dans la chaine de départ, preg_split() crée un nouvel élément dans le tableau renvoyé.

Utilisation de la fonction PHP preg_split()

On utilise la fonction PHP preg_split() pour éclater une chaine de caractères selon un schéma de recherche

La fonction PHP preg_quote()

La fonction preg_quote() va nous permettre d’échapper certains caractères spéciaux pour les regex.

Utiliser preg_quote() correspond à placer un antislash (le caractère d’échappement) devant chaque caractère spécial.

Cette fonction peut s’avérer utile lorsque notre schéma de recherche possède beaucoup de caractères spéciaux dont on veut échapper le sens.

Nous reparlerons des caractères spéciaux et de l’échappement des caractères plus tard dans cette partie.

La fonction PHP preg_last_error()

La fonction preg_last_error() va être surtout utilisée pour du débogage.

En effet, celle-ci va retourner le code d’erreur correspondant à la dernière regex utilisée.

On pourra donc utiliser cette fonction lorsqu’une de nos regex ne fonctionne pas, afin d’avoir plus d’informations sur la nature du problème.

Chapitre précédent

Chapitre suivant