preg_filter Fonksiyonu
preg_filter fonksiyonu, bir dize veya dize dizisinde düzenli ifade ile arama ve değiştirme yapar. preg_replace'den farklı olarak, sadece eşleşme bulunan öğeleri döndürür. İlk parametre olarak düzenli ifadeyi, ikinci parametre olarak değiştirme dizesini, üçüncü parametre olarak işlenecek dizeyi veya diziyi alır.
Dördüncü isteğe bağlı parametrede her öğede yapılacak maksimum değiştirme sayısı belirtilebilir (varsayılan -1, bu "sınırsız" anlamına gelir).
Beşinci isteğe bağlı parametrede, yapılan değiştirme sayısının yazılacağı değişken belirtilir.
Sözdizimi
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Örnek
Bir dizedeki tüm rakamları 'X' karakteri ile değiştirelim:
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Kodun çalıştırma sonucu:
'aXbXcX'
Örnek
Rakamları '#' ile değiştirerek bir dize dizisini işleyelim:
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Kodun çalıştırma sonucu:
['a#', 'b#', 'd#']
Örnek
preg_replace'den farkını gösterelim:
<?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);
?>
Kodun çalıştırma sonucu:
Filter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']
Ayrıca Bakınız
-
preg_replacefonksiyonu,
düzenli ifade ile değiştirme yapar -
preg_matchfonksiyonu,
düzenli ifade ile eşleşmeyi kontrol eder