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
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);
?>
<?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