Funcția preg_replace_callback
Funcția preg_replace_callback efectuează căutare prin expresie regulată și înlocuire utilizând o funcție callback. Primul parametru primește expresia regulată, al doilea - funcția callback, iar al treilea - șirul de caractere pentru procesare. Funcția callback primește un array cu potriviri și trebuie să returneze un șir de caractere pentru înlocuire.
Sintaxă
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Exemplu
Să înlocuim toate numerele din șir cu pătratele lor:
<?php
$str = 'Numbers: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Rezultatul executării codului:
'Numbers: 4, 16, 36'
Exemplu
Să transformăm toate cuvintele în majuscule:
<?php
$str = 'hello world';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Rezultatul executării codului:
'HELLO WORLD'
Exemplu
Să adăugăm paranteze în jurul fiecărui număr:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Rezultatul executării codului:
'(1) (2) (3) (4) (5)'
Vezi și
-
funcția
preg_replace,
care efectuează înlocuire prin expresie regulată -
funcția
preg_match,
care efectuează căutare prin expresie regulată