PHP preg_replace_callback_array() Fonction

❮ Référence PHP RegExp

Exemple

Montre combien de lettres ou de chiffres se trouvent dans chaque mot d'une phrase :

<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . ' lettre]';
}

function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . ' chiffre]';
}

$input = "Il y a 365 jours dans une année.";
$patterns = [
'/\b[a-z]+\b/i' => 'countLetters',
'/\b[0-9]+\b/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
Essayez-le vous-même »

Définition et Utilisation

La preg_replace_callback_array() fonction retourne une chaîne ou un tableau de chaînes dans lequel les correspondances d'un ensemble d'expressions régulières sont remplacées par la valeur de retour d'une fonction de rappel.

Remarque : Pour chaque chaîne, la fonction évalue les motifs dans l'ordre dans lequel ils sont donnés. Le résultat de l'évaluation du premier motif sur la chaîne est utilisé comme chaîne d'entrée pour le deuxième motif, et ainsi de suite. Cela peut conduire à un comportement inattendu.


Syntaxe

preg_replace_callback_array( motifs, entrée, limite, compte )

Valeurs des Paramètres

Paramètre Description
motif Requis. Un tableau associatif qui associe des motifs d'expressions régulières à des fonctions de rappel.

Les fonctions de rappel ont un paramètre qui est un tableau de correspondances. Le premier élément du tableau contient la correspondance pour l'expression entière tandis que les éléments restants contiennent les correspondances pour chacun des groupes dans l'expression.
entrée Requis. La chaîne ou le tableau de chaînes dans lequel les remplacements sont effectués
limite Optionnel. Par défaut à -1, ce qui signifie illimité. Définit une limite sur le nombre de remplacements pouvant être effectués dans chaque chaîne
compte Optionnel. Après l'exécution de la fonction, cette variable contiendra un nombre indiquant combien de remplacements ont été effectués

Détails Techniques

Valeur de Retour : Retourne une chaîne ou un tableau de chaînes résultant de l'application des remplacements à la chaîne ou aux chaînes d'entrée
Version PHP : 7+

Plus d'Exemples

Exemple

Cet exemple illustre les effets potentiellement inattendus des motifs évalués en séquence. D'abord, le remplacement countLetters ajoute "[4 lettres]" à "jours" et, après que ce remplacement a été effectué, le remplacement countDigits trouve le "4" dans "4 lettres" et ajoute "[1 chiffre]" à cela :

<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . ' lettre]';
}

function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . ' chiffre]';
}

$input = "365 jours";
$patterns = [
'/[a-z]+/i' => 'countLetters',
'/[0-9]+/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
Essayez-le vous-même »

❮ Référence PHP RegExp