mb_ereg_replace_callback
(PHP 5 >= 5.4.1, PHP 7)
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"
] ) : string
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 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.
-
option
-
L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().
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
- Fonctions anonymes
- Informations sur le type callback
Version en cache
23/12/2024 06:13:16 Cette version de la page est en cache (à la date du 23/12/2024 06:13:16) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mb-ereg-replace-callback.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.