Position actuelle: Accueil> Derniers articles> Preg_replace_callback_array Détails d'utilisation de base

Preg_replace_callback_array Détails d'utilisation de base

M66 2025-06-03

En PHP, le traitement des expressions régulières est une partie indispensable du développement quotidien. Pour améliorer la lisibilité et la flexibilité, PHP 7 a introduit une nouvelle fonction - preg_replace_callback_array . Cette fonction combine les avantages de l'appariement régulier et du traitement de rappel et est une encapsulation concise de la logique de remplacement complexe.

Cet article expliquera en profondeur l'utilisation de base et les scénarios d'application pratiques de preg_replace_callback_array pour vous aider à traiter les chaînes plus efficacement.

1. Qu'est-ce que preg_replace_callback_array?

preg_replace_callback_array est une nouvelle fonction ajoutée dans PHP 7+. Il nous permet de définir un tableau de mappage de "Fonctions d'expression régulière => de rappel", puis d'appliquer toutes ces règles régulières et la logique de traitement correspondante à la fois.

La syntaxe est la suivante:

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject[, int $limit = -1[, int &$count = null]])
  • $ motifs_and_callbacks : un tableau associatif, la clé est une expression régulière et la valeur est la fonction de rappel correspondante.

  • $ Sujet : La chaîne cible à remplacer.

  • $ limite : paramètre facultatif, spécifiant le nombre maximum de remplacements.

  • Nombre $ : paramètre facultatif pour recevoir le nombre total de remplacements.

2. Exemples d'utilisation de base

Voici un exemple simple montrant comment traiter une chaîne en utilisant deux expressions régulières et des fonctions de rappel correspondantes:

 $text = 'Visitez notre site officiel:http://m66.net Ou envoyer un e-mail à support@m66.net Obtenir un soutien。';

$result = preg_replace_callback_array([
    // correspondreURL
    '/https?:\/\/[^\s]+/i' => function ($matches) {
        return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>';
    },
    // correspondreEmailadresse
    '/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/i' => function ($matches) {
        return '<a href="mailto:' . $matches[0] . '">' . $matches[0] . '</a>';
    }
], $text);

echo $result;

Sortir:

 Visitez notre site officiel:<a href="http://m66.net">http://m66.net</a> Ou envoyer un e-mail à <a href="mailto:support@m66.net">support@m66.net</a> Obtenir un soutien。

3. Scénarios d'application pratiques

1. Remplacement uniforme de plusieurs modes

Dans le prég_replace_callback traditionnel, si nous devons gérer plusieurs modèles, nous devons souvent écrire plusieurs flux de traitement. En utilisant preg_replace_callback_array , toute logique peut être gérée de manière centralisée, avec une structure claire et facile à maintenir.

2. Implémentez facilement l'analyse de texte riche

Par exemple, la conversion automatique des URL, des e-mails, des émoticônes, etc. en balises HTML, c'est la force de preg_replace_callback_array .

 $text = 'Voir ce lien:https://m66.net,Envoyer un e-mail à hello@m66.net,Et un visage souriant :)';

$result = preg_replace_callback_array([
    '/https?:\/\/[^\s]+/' => function ($m) {
        return '<a href="' . $m[0] . '">' . $m[0] . '</a>';
    },
    '/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/i' => function ($m) {
        return '<a href="mailto:' . $m[0] . '">' . $m[0] . '</a>';
    },
    '/:\)/' => function () {
        return '??';
    }
], $text);

echo $result;

3. Remplacement du lot haute performance

Comparé à plusieurs appels à preg_replace_callback , preg_replace_callback_array complète toutes les correspondances et remplacement à la fois, réduisant les frais généraux de performances, en particulier dans les grands remplacements de texte ou complexes.

4. Choses à noter

  • La version PHP doit être de 7,0 ou plus.

  • La fonction de rappel de chaque expression régulière doit renvoyer le résultat de remplacement, sinon il entraînera l'échec du remplacement ou une chaîne vide.

  • L'ordre de remplacement dépend de l'ordre de définition du tableau, alors faites attention à l'ordre du tableau lorsqu'il y a un ordre de dépendance.

5. Résumé

preg_replace_callback_array est une fonction très pratique, particulièrement adaptée à l'analyse et au remplacement de texte multimodal. En faisant usage rationnel de cette fonction, nous pouvons gérer des tâches de remplacement régulières complexes d'une manière plus concise et plus claire, améliorant la lisibilité et la maintenabilité du code.

Qu'il s'agisse d'un forum de développement, d'un éditeur de texte riche ou d'un simple nettoyage de données, preg_replace_callback_array peut jouer un rôle important.

Quelles difficultés rencontrez-vous dans le processus d'utilisation de la régularité? Bienvenue pour laisser un message pour la communication!