Функција preg_replace_callback

Функција preg_replace_callback извршава претрагу регуларним изразом и замену користећи callback-функцију. Први параметар прима регуларни израз, други - callback-функцију, а трећи - стринг за обраду. Callback-функција добија низ подударања и мора да врати стринг замене.

Синтакса

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

Пример

Замењујемо све бројеве у стрингу њиховим квадратима:

php<?php
  $str = 'Бројеви: 2, 4, 6';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return $matches[0] * $matches[0];
  }, $str);
  echo $res;
?>

Резултат извршавања кода:

php'Бројеви: 4, 16, 36'

Пример

Трансформишемо све речи у велика слова:

php<?php
  $str = 'hello world';
  $res = preg_replace_callback('/\b\w+\b/', function($matches) {
    return strtoupper($matches[0]);
  }, $str);
  echo $res;
?>

Резултат извршавања кода:

php'HELLO WORLD'

Пример

Додајемо заграде око сваког броја:

php<?php
  $str = '1 2 3 4 5';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return '('.$matches[0].')';
  }, $str);
  echo $res;
?>

Резултат извршавања кода:

php'(1) (2) (3) (4) (5)'

Види такође

  • функцију preg_replace,
    која извршава замену регуларним изразом
  • функцију preg_match,
    која извршава претрагу регуларним изразом