English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base PHP

Manuale avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Uso e esempio della funzione PHP preg_replace_callback()

Espressioni regolari PHP (PCRE)

La funzione preg_replace_callback esegue una ricerca regolare con un'espressione regolare e sostituisce utilizzando una callback.

Sintassi

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

Il comportamento di questa funzione è identico a quello di preg_replace() eccetto per il fatto che può specificare un callback per calcolare la sostituzione della stringa.

Spiegazione dei parametri:

  • $pattern: modello da cercare, può essere una stringa o un array di stringhe.

  • $callback: funzione di callback chiamata ogni volta che è necessario sostituire, la funzione riceve come parametri i risultati di cattura dal subject.

  • $subject: stringa o array di stringhe da cercare e sostituire.

  • $limit: opzionale, rappresenta il numero massimo di sostituzioni per ogni modello su ogni stringa subject. Di default è -1 (senza limiti).

  • $count: opzionale, rappresenta il numero di sostituzioni eseguite.

Valore di ritorno

Se subject è un array, preg_replace_callback() restituisce un array, in caso contrario restituisce una stringa. In caso di errore viene restituito NULL.

Se viene trovata una corrispondenza, viene restituita la stringa di destinazione sostituita (o array di stringhe), in caso contrario subject viene restituito senza cambiamenti.

Esempio online

<?php
// Aumento l'anno del testo.
$text = "Il giorno degli scherzi è il 04/01/2002\n";
$text.= "L'ultimo Natale era il 12/24/2001\n";
// Funzione di callback
function next_year($matches)
{
  // Di solito: $matches[0] è la combinazione completa
  // $matches[1] è la prima gruppo catturato
  // Proseguo così
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|((\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);
?>

Il risultato dell'esecuzione è come segue:

Il giorno degli scherzi è il 04/01/2003
L'ultimo Natale era il 12/24/2002

Espressioni regolari PHP (PCRE)