(PHP 5 >= 5.4.1, PHP 7, PHP 8)
mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback
Description
mb_ereg_replace_callback(
string
$pattern
,
callable
$callback
,
string
$string
,
?string
$options
=
null
): string|false|null
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ères 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 pour
déclarer une fonction de rappel lors de l'appel de la fonction
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.
-
options
-
L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().
Valeurs de retour
Retourne un string en cas de succès, ou false
en cas d'erreur.
Si string
n'est pas valide pour l'encodage courant,
null
est retourné.
Historique
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() utilisant les fonctions anonymes
<?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);
?>
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.
Voir aussi
- mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets
- mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions régulières
- Fonctions anonymes