Funkcja preg_replace_callback

Funkcja preg_replace_callback wykonuje wyszukiwanie za pomocą wyrażenia regularnego i zamianę z wykorzystaniem funkcji callback. Pierwszy parametr przyjmuje wyrażenie regularne, drugi - funkcję callback, a trzeci - łańcuch znaków do przetworzenia. Funkcja callback otrzymuje tablicę dopasowań i powinna zwracać łańcuch zastępujący.

Składnia

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

Przykład

Zamieńmy wszystkie liczby w łańcuchu na ich kwadraty:

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

Wynik wykonania kodu:

php'Liczby: 4, 16, 36'

Przykład

Przekształćmy wszystkie słowa na wielkie litery:

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

Wynik wykonania kodu:

php'WITAJ ŚWIECIE'

Przykład

Dodajmy nawiasy wokół każdej liczby:

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

Wynik wykonania kodu:

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

Zobacz też

  • funkcję preg_replace,
    która wykonuje zamianę za pomocą wyrażenia regularnego
  • funkcję preg_match,
    która wykonuje wyszukiwanie za pomocą wyrażenia regularnego