Funksjonen preg_filter
Funksjonen preg_filter utfører søk og erstatning i en streng eller en matrise med strenger ved hjelp av et regulært uttrykk. I motsetning til preg_replace, returnerer den kun de elementene der det ble funnet et treff. Den tar det regulære uttrykket som første parameter, erstatningsstrengen som andre parameter, og strengen eller matrisen som skal behandles som tredje parameter.
I den fjerde valgfrie parameteren kan du angi et maksimalt antall erstatninger i hvert element (standard er -1, som betyr "uten begrensninger").
I den femte valgfrie parameteren angis variabelen som antallet utførte erstatninger skal skrives til.
Syntaks
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Eksempel
La oss erstatte alle sifre i strengen med tegnet 'X':
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Resultat av kjøring av koden:
'aXbXcX'
Eksempel
La oss behandle en matrise med strenger og erstatte sifre med '#':
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Resultat av kjøring av koden:
['a#', 'b#', 'd#']
Eksempel
La oss demonstrere forskjellen fra preg_replace:
<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Filter resultat: ";
var_dump($res_filter);
echo "Erstatt resultat: ";
var_dump($res_replace);
?>
Resultat av kjøring av koden:
Filter resultat: ['a#', 'b#', 'd#']
Erstatt resultat: ['a#', 'b#', 'c', 'd#']
Se også
-
funksjonen
preg_replace,
som utfører erstatning med regulært uttrykk -
funksjonen
preg_match,
som sjekker samsvar med regulært uttrykk