Pseudo Mot de passe
fleche Inscription
fleche Mot de passe oublié ?
Les dernières pages de Cours et Dossiers ajoutées
Informations Générales
Chargement en cours...
Nombre de Visites fleche [ 1 129 544 ]
Votre IP fleche [ 38.107.179.240 ]
Vous êtes ici : Home Page Cours PHP PREG MATCH ALL
Imprimer le document Version Imprimable

Informations Générales

[436] Posts sur le forum
[514] Membres inscrits
Il y a en ligne :
arrow 0 Membre
arrow 0 Invité
fled Membre en ligne:
Aucun

Partenariat

Partenariat Vous pouvez aider ce site à évoluer, en contribuant à son développement. Proposez vos idées de cours et/ou dossiers.
Rendez-vous dans « Partenariat » pour en savoir plus.


Publicité


Prestataire

N°1 de l'hébergement, location de serveurs, nom de domaines et téléphonie.
(OVH est recommandé par Webelix.net)

www.

Nos Partenaires

Expression rationnelle PREG_MATCH_ALL()

Rechercher par expression rationnelle

preg_match_all (string $pattern, string $subject, array &$matches [, int $flags [, int $offset ]])

preg_match_all() analyse subject pour trouver l'expression pattern et met les résultats dans matches, dans l'ordre spécifié par flags.

preg_match_all() retourne le nombre de fois où le masque pattern a été trouvé. Après avoir trouvé un premier résultat, la recherche continue jusqu'à la fin de la chaîne.
preg_match_all() retourne FALSE si une erreur survient.

Valeurs possibles pour $flags

Valeur
possible
Action
PREG_PATTERN_ORDER (par défaut) L'ordre est tel que $matches[0] est un tableau qui contient les résultats qui satisfont le masque complet, $matches[1] est un tableau qui contient les résultats qui satisfont la première parenthèse capturante, etc.
PREG_SET_ORDER Les résultats sont classés de telle façon que $matches[0] contient la première série de résultats, $matches[1] contient la deuxième, etc.
PREG_OFFSET_CAPTURE Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée, puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat, à l'index 0 dans la chaîne subject constant 1.

Exemple avec preg_match_all()

Dans cet exemple, on recherche la patterns entre "/" et "/" et l'on retourne le nombre de fois qu'il est trouvé.

<?php
  $subject = 'Ceci est un test';
  $nb_match = preg_match_all("/e/", $subject, $matches);

  echo "$nb_match est le nombre de (e) dans \"$subject\".";
?>

Ce qui retourne :

3 est le nombre de (e) dans "Ceci est un test".


Autre exemple, pour trouver et lire un texte entre les balises > et <, avec comme flags "PREG_PATTERN_ORDER".

<?php
  $subject = '<p>Ceci est un test</p><p style="color:red;"> avec PREG_MATCH_ALL()</p>';
  preg_match_all("|<[^>]+>(.*)</[^>]+>|U", $subject, $matches, PREG_PATTERN_ORDER);

  echo '<p>$matches[0][0] = "'.htmlspecialchars($matches[0][0]).'"</p>';
  echo '<p>$matches[0][1] = "'.htmlspecialchars($matches[0][1]).'"</p>';
  echo '<p>$matches[1][0] = "'.htmlspecialchars($matches[1][0]).'"</p>';
  echo '<p>$matches[1][1] = "'.htmlspecialchars($matches[1][1]).'"</p>';
?>

Ce qui retourne :

$matches[0][0] = "<p>Ceci est un test</p>"

$matches[0][1] = "<p style="color:red;"> avec PREG_MATCH_ALL()</p>"

$matches[1][0] = "Ceci est un test"

$matches[1][1] = " avec PREG_MATCH_ALL()"


Autre exemple, pour trouver et lire un texte entre les balises > et <, avec comme flags "PREG_SET_ORDER".

<?php
  $subject = '<p>Ceci est un test</p><p style="color:red;"> avec PREG_MATCH_ALL()</p>';
  preg_match_all("|<[^>]+>(.*)</[^>]+>|U", $subject, $matches, PREG_SET_ORDER);

  echo '<p>$matches[0][0] = "'.htmlspecialchars($matches[0][0]).'"</p>';
  echo '<p>$matches[0][1] = "'.htmlspecialchars($matches[0][1]).'"</p>';
  echo '<p>$matches[1][0] = "'.htmlspecialchars($matches[1][0]).'"</p>';
  echo '<p>$matches[1][1] = "'.htmlspecialchars($matches[1][1]).'"</p>';
?>

Ce qui retourne :

$matches[0][0] = "<p>Ceci est un test</p>"

$matches[0][1] = "Ceci est un test"

$matches[1][0] = "<p style="color:red;"> avec PREG_MATCH_ALL()</p>"

$matches[1][1] = " avec PREG_MATCH_ALL()"

Haut de page