(PHP 5 >= 5.3.0)
preg_filter — Sucht und ersetzt mit regulären Ausdrücken
Davon abgesehen, dass preg_filter() bei Übereinstimmungen nur (möglicherweise umgewandelte) Zeichenketten zurückgibt, ist sie mit preg_replace() identisch. Details über die Funktionsweise dieser Funktion finden Sie in der preg_replace()-Dokumentation.
Gibt ein Array zurück, falls subject ein Array ist, andernfalls eine Zeichenkette.
Falls keine Übereinstimmungen gefunden wurden oder ein Fehler auftrat, wird ein leeres Array zurückgegeben, wenn subject ein Array ist, andernfalls NULL.
Beispiel #1 Beispiel zum Vergleich von preg_filter() und preg_replace()
<?php
$zeichenkette = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$suchmuster = array('/\d/', '/[a-z]/', '/[1a]/');
$ersatz = array('A:$0', 'B:$0', 'C:$0');
echo "preg_filter liefert\n";
print_r(preg_filter($suchmuster, $ersatz, $zeichenkette));
echo "preg_replace liefert\n";
print_r(preg_replace($suchmuster, $ersatz, $zeichenkette));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
preg_filter liefert Array ( [0] => A:C:1 [1] => B:C:a [2] => A:2 [3] => B:b [4] => A:3 [7] => A:4 ) preg_replace liefert Array ( [0] => A:C:1 [1] => B:C:a [2] => A:2 [3] => B:b [4] => A:3 [5] => A [6] => B [7] => A:4 )
Another way to filter an array, and simply return the matching items: preg_grep!
If you want to just filter an array based on a regular expression, without replacing any of the array values, try RegexIterator: http://us3.php.net/manual/en/class.regexiterator.php