Funzione preg_replace_callback

La funzione preg_replace_callback esegue la ricerca tramite espressione regolare e la sostituzione utilizzando una funzione di callback. Il primo parametro accetta l'espressione regolare, il secondo - la funzione di callback, e il terzo - la stringa da elaborare. La funzione di callback riceve un array delle corrispondenze e deve restituire la stringa di sostituzione.

Sintassi

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

Esempio

Sostituiamo tutti i numeri nella stringa con i loro quadrati:

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

Risultato dell'esecuzione del codice:

php'Numbers: 4, 16, 36'

Esempio

Convertiamo tutte le parole in maiuscolo:

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

Risultato dell'esecuzione del codice:

php'HELLO WORLD'

Esempio

Aggiungiamo parentesi attorno a ogni numero:

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

Risultato dell'esecuzione del codice:

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

Vedi anche

  • la funzione preg_replace,
    che esegue la sostituzione tramite espressione regolare
  • la funzione preg_match,
    che esegue la ricerca tramite espressione regolare