Manuel PHP

Précédent

 

Suivant

preg_match_all

preg_match_all -- Expression régulière globale

Description

int preg_match_all(string pattern, string subject, array matches, int [order]);

Analyse subject pour trouver líexpression pattern.et met les résultats dans matches, dans líordre spécifié par order.

Après avoir trouvé un premier résultat, la recherche continue jusquíà la fin de la chaîne.

order peut prendre une des deux valeurs suivantes :

PREG_PATTERN_ORDER
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_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>exemple: </b><div align=left>un test</div>", $out, PREG_PATTERN_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"
	  
Cet exemple va afficher :
<b>exemple: </b>, <div align=left>ceci est un test</div>
exemple: , ceci est un test
	  
Ainsi, $out[0] est un tableau qui contient les résultats qui satisfont le masque complet, et $out[1] est un tableau qui contient les balises entre < et >.
PREG_SET_ORDER
Les résultats sont classés de telle façon que $matches[0] contient la première série de résultat, $matches[1] contient la deuxième série de résultat, etc...
preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>a test</div>", $out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"
	  
Cet exemple va afficher :
<b>exemple: </b>, exemple: 
<div align=left> ceci est un test </div>, ceci est un test
	  
Dans ce cas, $matches[0] est la première série de résultat, et $matches[0][0] contient le texte qui satisfait le masque complet, $matches[0][1] contient le texte de la première parenthèse capturante, etcÖ. De même, $matches[1] contient le texte qui satisfait le masque complet, etc.

Si order est omis, PREG_PATTERN_ORDER est utilisé par défaut.

Retourne le nombre de résultat qui satisfont le masque complet, ou false en cas díéchet ou díerreur.

Exemple 1. Extraction de tous les numéros de téléphone díun texte.

preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
               "Appelez 555-1212 or 1-800-555-1212", $phones);
      

Voir aussi preg_match(), preg_replace(),et preg_split().

Précédent

Sommaire

Suivant

preg_match

Chapitre

preg_replace