(PHP 5 >= 5.3.0, PHP 7, PHP 8)
preg_filter — Recherche et remplace avec une expression rationnelle
$pattern,$replacement,$subject,$limit = -1,&$count = nullpreg_filter() est identique à preg_replace(), mais elle ne fait que retourner les occurrences trouvées (éventuellement transformées). Pour plus de détails sur le fonctionnement de cette fonction, voir preg_replace().
Les paramètres sont décrits dans la documentation de preg_replace().
Retourne un array si le paramètre subject
est de type array ou une string autrement.
Si aucune occurrence n'est trouvée ou si une erreur survient,
un array vide est retourné lorsque le paramètre
subject est un array ou null sinon.
Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.
Exemple #1 Exemple de comparaison de preg_filter() avec preg_replace()
<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');
echo "preg_filter renvoie\n";
print_r(preg_filter($pattern, $replace, $subject));
echo "preg_replace renvoie\n";
print_r(preg_replace($pattern, $replace, $subject));
?>L'exemple ci-dessus va afficher :
preg_filter renvoie
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[7] => A:4
)
preg_replace renvoie
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[5] => A
[6] => B
[7] => A:4
)