Funcția preg_replace_callback_array

Funcția preg_replace_callback_array permite efectuarea de înlocuiri multiple într-un șir cu utilizarea unor funcții callback diferite pentru fiecare expresie regulată. Primul parametru funcția primește un tablou asociativ, unde cheile sunt expresii regulate, iar valorile sunt funcții callback. Al doilea parametru se transmite șirul pentru procesare.

Sintaxă

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

Exemplu

Să înlocuim numerele cu pătratele lor, iar literele cu majuscule:

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;
?>

Rezultatul executării codului:

php'A1B4C9'

Exemplu

Să transformăm datele dintr-un format în altul și să evidențiem numerele cu aldine:

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;
?>

Rezultatul executării codului:

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

Vedeți și