[ 1 129 544 ]
[ 38.107.179.240 ]
Expression rationnelle PREG_MATCH_ALL()Rechercher par expression rationnellepreg_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. Valeurs possibles pour $flags
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()" |