Funkcija preg_replace_callback

Funkcija preg_replace_callback atlieka paiešką pagal reguliariąją išraišką ir pakeitimą naudojant callback funkciją. Pirmu parametru priima reguliariąją išraišką, antru - callback funkciją, o trečiu - apdorojimui skirtą eilutę. Callback funkcija gauna atitikimų masyvą ir turi grąžinti pakeitimo eilutę.

Sintaksė

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

Pavyzdys

Pakeiskime visus skaičius eilutėje jų kvadratais:

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

Kodo vykdymo rezultatas:

php'Skaičiai: 4, 16, 36'

Pavyzdys

Paverskime visus žodžius didžiosiomis raidėmis:

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

Kodo vykdymo rezultatas:

php'LABAS PASAULI'

Pavyzdys

Pridėkime skliaustus aplink kiekvieną skaičių:

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

Kodo vykdymo rezultatas:

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

Taip pat žiūrėkite

  • funkciją preg_replace,
    kuri atlieka pakeitimą pagal reguliariąją išraišką
  • funkciją preg_match,
    kuri atlieka paiešką pagal reguliariąją išraišką