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

phppreg_replace_callback(pattern, callback, subject, [limit], [count]);

Příklad

Nahradíme všechna čísla v řetězci jejich druhými mocninami:

php<?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:

php'Čísla: 4, 16, 36'

Příklad

Převedeme všechna slova na velká písmena:

php<?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:

php'AHOJ SVĚTE'

Příklad

Přidáme závorky kolem každého čísla:

php<?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:

php'(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