Funkcija preg_replace_callback_array

Funkcija preg_replace_callback_array omogoča izvajanje večkratnih zamenjav v nizu z uporabo različnih callback funkcij za vsak regularni izraz. Prvi parameter funkcije je asociativni array, kjer so ključi regularni izrazi, vrednosti pa callback funkcije. Kot drugi parameter se posreduje niz za obdelavo.

Sintaksa

phppreg_replace_callback_array(array $patterns_and_callbacks, string $subject): string

Primer

Zamenjajmo številke z njihovimi kvadrati, črke pa z velikimi črkami:

php<?php
  $str = 'a1b2c3';
  $res = preg_replace_callback_array([
    '/\d+/' => function($matches) {
      return $matches[0] * $matches[0];
    },
    '/[a-z]/' => function($matches) {
      return strtoupper($matches[0]);
    }
  ], $str);
  echo $res;
?>

Rezultat izvajanja kode:

php'A1B4C9'

Primer

Pretvorimo datume iz enega formata v drugega in označimo številke krepko:

php<?php
  $text = 'Date: 2023-05-15';
  $res = preg_replace_callback_array([
    '/(\d{4})-(\d{2})-(\d{2})/' => function($matches) {
      return $matches[3].'.'.$matches[2].'.'.$matches[1];
    },
    '/\d+/' => function($matches) {
      return '<b>'.$matches[0].'</b>';
    }
  ], $text);
  echo $res;
?>

Rezultat izvajanja kode:

php'Date: <b>15</b>.<b>05</b>.<b>2023</b>'

Glejte tudi