Funzione preg_filter
La funzione preg_filter esegue ricerca e sostituzione in una stringa o in un array di stringhe utilizzando un'espressione regolare. A differenza di preg_replace, restituisce solo gli elementi in cui è stata trovata una corrispondenza. Il primo parametro accetta l'espressione regolare, il secondo - la stringa di sostituzione, il terzo - la stringa o l'array da elaborare.
Il quarto parametro opzionale permette di specificare il numero massimo di sostituzioni per ogni elemento (di default -1, che significa "senza limiti").
Il quinto parametro opzionale indica la variabile in cui verrà memorizzato il numero di sostituzioni eseguite.
Sintassi
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Esempio
Sostituiamo tutte le cifre nella stringa con il simbolo 'X':
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Risultato dell'esecuzione del codice:
'aXbXcX'
Esempio
Elaboriamo un array di stringhe, sostituendo le cifre con '#':
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Risultato dell'esecuzione del codice:
['a#', 'b#', 'd#']
Esempio
Dimostriamo la differenza rispetto a preg_replace:
<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Risultato Filter: ";
var_dump($res_filter);
echo "Risultato Replace: ";
var_dump($res_replace);
?>
Risultato dell'esecuzione del codice:
Risultato Filter: ['a#', 'b#', 'd#']
Risultato Replace: ['a#', 'b#', 'c', 'd#']
Vedi anche
-
la funzione
preg_replace,
che esegue la sostituzione con un'espressione regolare -
la funzione
preg_match,
che verifica la corrispondenza con un'espressione regolare