Funkce preg_replace_callback
Funkce preg_replace_callback provádí vyhledávání pomocí regulárního výrazu a nahrazování s využitím callback funkce. První parametr přijímá regulární výraz, druhý - callback funkci, a třetí - řetězec ke zpracování. Callback funkce obdrží pole shod a musí vrátit řetězec pro nahrazení.
Syntaxe
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Příklad
Nahradíme všechna čísla v řetězci jejich druhými mocninami:
<?php
$str = 'Čísla: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Výsledek provedení kódu:
'Čísla: 4, 16, 36'
Příklad
Převedeme všechna slova na velká písmena:
<?php
$str = 'ahoj světe';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Výsledek provedení kódu:
'AHOJ SVĚTE'
Příklad
Přidáme závorky kolem každého čísla:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Výsledek provedení kódu:
'(1) (2) (3) (4) (5)'
Viz také
-
funkci
preg_replace,
která provádí nahrazování pomocí regulárního výrazu -
funkci
preg_match,
která provádí vyhledávání pomocí regulárního výrazu