Position actuelle: Accueil> Derniers articles> Débogage de la logique de rappel régulière avec var_dump et print_r

Débogage de la logique de rappel régulière avec var_dump et print_r

M66 2025-05-18

Lorsque vous utilisez preg_replace_callback_array pour gérer le remplacement de texte complexe, il est souvent nécessaire de déboguer les correspondances dans les fonctions de rappel régulières et de déterminer si la logique est correcte. PHP fournit deux fonctions de débogage très pratiques: var_dump () et print_r () . Cet article démontrera à travers un exemple comment déboguer la logique de rappel régulière à l'aide de ces deux fonctions dans preg_replace_callback_array .

Qu'est-ce que preg_replace_callback_array ?

preg_replace_callback_array () est une fonction fournie par PHP 7.0 et plus. Il vous permet de passer dans un tableau associatif composé d'expressions régulières et de fonctions de rappel. Il traversera le texte correspondant et le remplacera en fonction des fonctions de rappel correspondantes.

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null): string

Par rapport à preg_replace_callback , il peut gérer plusieurs expressions régulières et plusieurs fonctions de rappel, avec une logique plus claire et une évolutivité plus forte.

Cas pratique: débogage de la logique de remplacement multimode

Supposons que nous ayons un texte qui mélange des liens de style Markdown et des balises personnalisées {{code}} , et nous voulons utiliser preg_replace_callback_array pour les gérer uniformément:

 $text = 'Faire un clic [ici](https://m66.net) Vérifiez les détails,Ou utiliser {{print_name}} variable。';

Nous définissons deux modèles et spécifions leurs fonctions de rappel respectives:

 $patterns = [
    // correspondre markdown Lien:[texte](URL)
    '/\[(.*?)\]\((.*?)\)/' => function ($matches) {
        echo "correspondre到 markdown Lien:\n";
        print_r($matches);
        return '<a href="' . htmlspecialchars($matches[2]) . '">' . htmlspecialchars($matches[1]) . '</a>';
    },
    // correspondre {{variable}} formulaire
    '/\{\{(.*?)\}\}/' => function ($matches) {
        echo "correspondre到variable标签:\n";
        var_dump($matches);
        $variableName = $matches[1];
        // 模拟variable替换
        $variables = [
            'print_name' => 'nom d&#39;utilisateur'
        ];
        return isset($variables[$variableName]) ? $variables[$variableName] : '';
    }
];

$result = preg_replace_callback_array($patterns, $text);
echo "\nRésultat de remplacement final:\n" . $result;

Exemple de résultats de sortie:

 correspondre到 markdown Lien:
Array
(
    [0] => [ici](https://m66.net)
    [1] => ici
    [2] => https://m66.net
)
correspondre到variable标签:
array(2) {
  [0]=>
  string(17) "{{print_name}}"
  [1]=>
  string(10) "print_name"
}

Résultat de remplacement final:
Faire un clic <a href="https://m66.net">ici</a> Vérifiez les détails,Ou utiliser nom d&#39;utilisateur variable。

Recommandations pour une utilisation

  • Utilisez print_r () pour sortir des tableaux avec des structures claires, ce qui convient plus à la lecture humaine;

  • L'utilisation de var_dump () pour afficher les types de données et les longueurs est particulièrement utile lors de la gestion de plusieurs structures de données;

  • Afin d'éviter le débogage d'informations contaminant la sortie de la page Web, il est recommandé de déboguer dans le fichier CLI ou journal;

  • Supprimez ou commentez toutes les instructions de débogage avant de vous rendre en ligne pour vous assurer que la sortie est soignée.

Résumer

preg_replace_callback_array offre de puissantes capacités de remplacement régulières multimode. À l'étape de débogage, combiné avec var_dump () et print_r () peut nous aider à comprendre rapidement la situation de correspondance et à vérifier si la logique est correcte. La maîtrise de cette méthode de débogage peut considérablement améliorer votre efficacité dans la gestion des tâches de traitement de texte complexes.