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

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Utilisation et exemple de la fonction preg_replace_callback() en PHP

PHP Expression régulière (PCRE)

La fonction preg_replace_callback effectue une recherche régulière et utilise un rappel pour le remplacement.

Syntaxe

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

Le comportement de cette fonction est similaire à celui de preg_replace() sauf qu'elle peut spécifier un callback pour effectuer le calcul de remplacement des chaînes.

Description des paramètres :

  • $pattern: motif à rechercher, peut être une chaîne ou un tableau de chaînes.

  • $callback: fonction de rappel appelée à chaque remplacement nécessaire, appelée avec les paramètres des résultats de correspondance dans subject.

  • $subject: chaîne de destination ou tableau de chaînes à rechercher et remplacer.

  • $limit: optionnel, nombre maximum de remplacements par motif pour chaque chaîne de sujet. Par défaut c'est-1(sans limite).

  • $count: optionnel, nombre de remplacements exécutés.

Valeur de retour

Si subject est un tableau, preg_replace_callback() renvoie un tableau, sinon il renvoie une chaîne. En cas d'erreur, il renvoie NULL.

Si un match est trouvé, renvoie la chaîne de destination remplacée (ou un tableau de chaînes), sinon subject sera retourné sans modification.

Exemple en ligne

<?php
// Augmenter l'année dans le texte.
$text = "Le jour des farces est 04/01/2002\n";
$text.= "Le dernier Noël était 12/24/2001\n";
// fonction de rappel
function next_year($matches)
{
  // généralement : $matches[0] est le match complet
  // $matches[1] est le premier groupe capturé
  // à suivre
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|(?\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);
?>

Le résultat de l'exécution est indiqué ci-dessous :

Le jour des farces est 04/01/2003
Le dernier Noël était 12/24/2002

PHP Expression régulière (PCRE)