English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Espressioni regolari PHP (PCRE)
La funzione preg_replace_callback esegue una ricerca regolare con un'espressione regolare e sostituisce utilizzando una callback.
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.
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.
<?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