mb_ereg_match
mb_ereg_replace
Fonctions sur les chaînes de caractères multi-octets
PHP Manual

# mb_ereg_replace_callback

(PHP 5 >= 5.4.1)

mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback

### Description

string mb_ereg_replace_callback ( string `$pattern` , callable `$callback` , string `$string` [, string `$option` = "msr" ] )

Recherche les `string` qui correspondent au paramètre `pattern`, puis remplace les textes qui correspondent avec le retour de la fonction `callback`.

Le comportement de cette fonction est presque identique à mb_ereg_replace(), à part le fait que le paramètre `replacement`, doit spécifier une fonction de retour `callback`.

### Liste de paramètres

`pattern`

  L'expression régulière.

  Les caractères multi octets peuvent être utilisé dans le `pattern`.

`callback`

  Un callback qui sera appelé et lui sera passé un tableau d'éléments correspondants dans la chaine de caractère `subject`. Le callback doit retourné la chaîne remplacée.

  Vous aurez souvent besoin de la fonction `callback` pour mb_ereg_replace_callback() juste une fois. Dans ce cas vous pouvez utiliser les fonctions anonymes (depuis PHP 5.3.0) ou create_function() pour déclarer une fonction anonyme comme callback dans l'appel de mb_ereg_replace_callback(). En faisait cela de cette manière vous avez toutes les informations nécessaires à l'appel de la fonction en un seul endroit, ce qui permet d'éviter d'encombrer l'espace de nom des fonctions avec un callback de fonction qui n'est pas utilisé ailleur.

`string`

  La string qui doit être vérifiée.

`option`

  Matching condition can be set by `option` parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. Note that e cannot be used for mb_ereg_replace_callback().

### Valeurs de retour

The resultant string en cas de succès, ou `FALSE` en cas d'erreur.

### Notes

> Note:

> L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

### Exemples

Exemple #1 Exemple avec mb_ereg_replace_callback()

`<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
// as usual: $matches[0] is the complete match
// $matches[1] the match for the first subpattern
// enclosed in '(...)' and so on
return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
"next_year",
$text);
?>`

L'exemple ci-dessus va afficher :

    April fools day is 04/01/2003
    Last christmas was 12/24/2002

Exemple #2 mb_ereg_replace_callback() utilise les fonctions anonymes supporté en PHP 5.3.0 ou supérieur

`<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
function ($matches) {
return $matches[1].($matches[2]+1);
},
$text);
?>`

### Voir aussi

- mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
- mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions rationnelles
- create_function() - Crée une fonction anonyme
- Fonctions anonymes
- Informations sur le type callback

mb_ereg_match
mb_ereg_replace
Fonctions sur les chaînes de caractères multi-octets
PHP Manual