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ă

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

Exemplu

Să înlocuim toate numerele din șir cu pătratele lor:

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

php'Numbers: 4, 16, 36'

Exemplu

Să transformăm toate cuvintele în majuscule:

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

Rezultatul executării codului:

php'HELLO WORLD'

Exemplu

Să adăugăm paranteze în jurul fiecărui număr:

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

Rezultatul executării codului:

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