Funkcija preg_replace_callback

Funkcija preg_replace_callback izvršava pretragu po regularnom izrazu i zamenu koristeći callback-funkciju. Prvi parametar prihvata regularni izraz, drugi - callback-funkciju, a treći - string za obradu. Callback-funkcija dobija niz podudaranja i treba da vrati string zamene.

Sintaksa

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

Primer

Zamenimo sve brojeve u stringu njihovim kvadratima:

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

Rezultat izvršavanja koda:

php'Brojevi: 4, 16, 36'

Primer

Pretvorimo sve reči u velika slova:

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

Rezultat izvršavanja koda:

php'HELLO WORLD'

Primer

Dodajmo zagrade oko svakog broja:

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

Rezultat izvršavanja koda:

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

Pogledajte takođe

  • funkciju preg_replace,
    koja izvršava zamenu po regularnom izrazu
  • funkciju preg_match,
    koja izvršava pretragu po regularnom izrazu