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
$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
callbackpour 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
optionparameter. 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);
?><?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
