Funktsioon preg_filter
Funktsioon preg_filter teostab otsingu ja asendamise stringis või stringide massiivis regulaaravaldise abil. Erinevalt preg_replace-st tagastab see ainult need elemendid, kus leiti vaste. Esimese parameetrina võtab regulaaravaldise, teisena - asendusstringi, kolmandana - töödeldava stringi või massiivi.
Neljandas valikulises parameetris saab määrata maksimaalse asenduste arvu igas elemendis (vaikimisi -1, mis tähendab "piiranguteta").
Viiendas valikulises parameetris määratakse muutuja, kuhu salvestatakse tehtud asenduste arv.
Süntaks
phppreg_filter(pattern, replacement, subject, [limit = -1], [count]);
Näide
Asendame kõik numbrid stringis sümboliga 'X':
php<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Koodi täitmise tulemus:
php'aXbXcX'
Näide
Töödelgem stringide massiivi, asendades numbrid sümboliga '#':
php<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Koodi täitmise tulemus:
php['a#', 'b#', 'd#']
Näide
Demonstreerime erinevust preg_replace-ga:
php<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Filteri tulemus: ";
var_dump($res_filter);
echo "Asenduse tulemus: ";
var_dump($res_replace);
?>
Koodi täitmise tulemus:
phpFilteri tulemus: ['a#', 'b#', 'd#']
Asenduse tulemus: ['a#', 'b#', 'c', 'd#']
Vaata ka
-
funktsiooni
preg_replace,
mis teostab asenduse regulaaravaldise abil -
funktsiooni
preg_match,
mis kontrollib vastavust regulaaravaldisele