A preg_filter függvény
A preg_filter függvény keresést és cserét végez egy sztringben vagy sztringek tömbjében reguláris kifejezés alapján. A preg_replace függvénytől eltérően csak azokat az elemeket adja vissza, amelyekben találat volt. Az első paraméterként egy reguláris kifejezést, a másodikként egy csere sztringet, a harmadikként pedig egy feldolgozandó sztringet vagy tömböt fogad.
A negyedik, opcionális paraméterben megadható az egyes elemekben végrehajtható cserekorlát (alapértelmezetten -1, ami azt jelenti, hogy "nincs korlát").
Az ötödik, opcionális paraméterben megadható egy változó, amelybe az elvégzett cserekések száma kerül.
Szintaxis
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Példa
Cseréljük le az összes számjegyet a sztringben a 'X' karakterre:
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
A kód végrehajtásának eredménye:
'aXbXcX'
Példa
Dolgozzunk fel egy sztringtömböt, számjegyeket a '#' karakterre cserélve:
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['a#', 'b#', 'd#']
Példa
Mutassuk be a különbséget a preg_replace függvényhez képest:
<?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);
?>
A kód végrehajtásának eredménye:
Filter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']
Lásd még
-
a
preg_replacefüggvényt,
amely cserét végez reguláris kifejezés alapján -
a
preg_matchfüggvényt,
amely ellenőrzi a reguláris kifejezéssel való egyezést