preg_replace_callback Fonksiyonu
preg_replace_callback fonksiyonu, bir callback fonksiyonu kullanarak regular ifade ile arama ve değiştirme yapar. İlk parametre olarak regular ifadeyi, ikinci parametre olarak callback fonksiyonunu, üçüncü parametre olarak ise işlenecek karakter dizisini alır. Callback fonksiyonu, eşleşmelerin bulunduğu bir dizi alır ve değiştirme karakter dizisini döndürmelidir.
Sözdizimi
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Örnek
Bir karakter dizisindeki tüm sayıları kareleriyle değiştirelim:
<?php
$str = 'Sayılar: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Kodun çalıştırılmasının sonucu:
'Sayılar: 4, 16, 36'
Örnek
Tüm kelimeleri büyük harfe dönüştürelim:
<?php
$str = 'merhaba dünya';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Kodun çalıştırılmasının sonucu:
'MERHABA DÜNYA'
Örnek
Her sayının etrafına parantez ekleyelim:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Kodun çalıştırılmasının sonucu:
'(1) (2) (3) (4) (5)'
Ayrıca Bakınız
-
preg_replacefonksiyonu,
regular ifade ile değiştirme yapar -
preg_matchfonksiyonu,
regular ifade ile arama yapar