Fonction preg_filter
La fonction preg_filter effectue une recherche et un remplacement dans une chaîne ou un tableau de chaînes par une expression régulière. Contrairement à preg_replace, elle ne renvoie que les éléments où une correspondance a été trouvée. Le premier paramètre accepte l'expression régulière, le second - la chaîne de remplacement, le troisième - la chaîne ou le tableau à traiter.
Le quatrième paramètre optionnel permet de définir le nombre maximum de remplacements dans chaque élément (par défaut -1, ce qui signifie "sans limite").
Le cinquième paramètre optionnel spécifie la variable dans laquelle sera enregistré le nombre de remplacements effectués.
Syntaxe
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Exemple
Remplaçons tous les chiffres dans la chaîne par le symbole 'X' :
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Résultat de l'exécution du code :
'aXbXcX'
Exemple
Traitions un tableau de chaînes, en remplaçant les chiffres par '#' :
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Résultat de l'exécution du code :
['a#', 'b#', 'd#']
Exemple
Démontrons la différence avec preg_replace :
<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Filter result: ";
var_dump($res_filter);
echo "Replace result: ";
var_dump($res_replace);
?>
Résultat de l'exécution du code :
Filter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']
Voir aussi
-
la fonction
preg_replace,
qui effectue un remplacement par une expression régulière -
la fonction
preg_match,
qui vérifie la correspondance avec une expression régulière