Funkcia preg_replace_callback

Funkcia preg_replace_callback vykonáva vyhľadávanie pomocou regulárneho výrazu a nahradzovanie s použitím callback funkcie. Prvým parametrom prijíma regulárny výraz, druhým - callback funkciu, a tretím - reťazec na spracovanie. Callback funkcia prijíma pole zhôd a musí vrátiť reťazec náhrady.

Syntax

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

Príklad

Nahradíme všetky čísla v reťazci ich štvorcami:

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

Výsledok vykonania kódu:

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

Príklad

Pretransformujeme všetky slová na veľké písmená:

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

Výsledok vykonania kódu:

php'AHOJ SVET'

Príklad

Pridáme zátvorky okolo 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ýsledok vykonania kódu:

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

Pozrite si aj

  • funkciu preg_replace,
    ktorá vykonáva nahradzovanie pomocou regulárneho výrazu
  • funkciu preg_match,
    ktorá vykonáva vyhľadávanie pomocou regulárneho výrazu