Position actuelle: Accueil> Derniers articles> Après le remplacement, coopérez avec json_encode () pour maintenir la sécurité de la transmission des données

Après le remplacement, coopérez avec json_encode () pour maintenir la sécurité de la transmission des données

M66 2025-06-05

Lors du traitement de l'entrée de l'utilisateur ou du contenu généré dynamiquement, les développeurs PHP doivent souvent remplacer les chaînes, tout en garantissant que ces données restent structurellement complètes et sécurisées lorsqu'elles sont transmises à l'aide de JSON_ENCODE () à l'avant. MB_EREGI_REPLACE est une fonction dans la MBSTring d'extension de chaîne multi-octet PHP qui est plus fiable que PREG_REPLACE traditionnelle lorsqu'il s'agit de chaînes multilingues ou Unicode. Cet article présentera comment utiliser MB_EREGI_REPLACE pour remplacer les données et combiner json_encode () pour obtenir une transmission de données sécurisée.

1. Introduction à MB_ERGI_REPLACE

MB_EREGI_REPLACE () est une fonction de remplacement régulière de plusieurs personnes avec la syntaxe suivante:

 mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = ""): string|false

Semblable à Preg_replace , il prend également en charge les expressions régulières, mais contrairement à MB_ERG_REPLACE , il s'agit d'une version insensible à la cas (équivalente au modificateur par défaut sur le modificateur).

2. Exemples de scénarios d'utilisation

Imaginez un scénario typique: vous devez remplacer l'URL dans la chaîne, remplacer tous les liens commençant par HTTP ou HTTPS par des espaces réservés sûrs et éviter d'afficher directement le contenu téléchargé par les utilisateurs comme liens cliquables.

 $input = "Bienvenue sur notre site Web:https://m66.net/page?id=123,Apprendre encore plus。";
$pattern = "(https?://[^\s]+)";
$replacement = "[Lien bloqué]";
$cleaned = mb_eregi_replace($pattern, $replacement, $input);
echo $cleaned;

Résultat de sortie:

 Bienvenue sur notre site Web:[Lien bloqué],Apprendre encore plus。

3. Utiliser avec json_encode

Lorsque nous transférons le contenu remplacé à l'extrémité frontale (comme via AJAX), nous devons le coder en utilisant json_encode () . Si le résultat de remplacement contient des caractères spéciaux tels que " , \ n , etc., la transmission directe peut détruire le format JSON.

Jetons un coup d'œil à un exemple:

 $data = [
    "message" => mb_eregi_replace($pattern, $replacement, $input)
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
echo $json;

Résultat de sortie:

 {"message":"Bienvenue sur notre site Web:[Lien bloqué],Apprendre encore plus。"}

JSON_UNESCAPED_UNICODE et JSON_UNESCAPED_SLASHES sont utilisés ici, ce qui évite l'échappement redondant des caractères et des URL chinois, ce qui rend le frontal plus facile à gérer.

4. Avancé: logique de remplacement personnalisée

Parfois, nous ne voulons pas seulement remplacer l’URL entière, mais nous voulons conserver certaines informations, telles que les noms de domaine. Nous pouvons utiliser des fonctions anonymes pour l'implémenter avec des rappels:

 $pattern = "(https?://([a-z0-9\-\.]+)(/[^\s]*))";
$replacement = function ($matches) {
    return "Liens à partir du nom de domaine:" . $matches[2]; // Extraire la partie du nom de domaine
};
$input = "Cliquez ici:https://m66.net/product/view?id=10 Vérifiez les détails";
$cleaned = preg_replace_callback("/$pattern/i", $replacement, $input);
echo json_encode(["message" => $cleaned], JSON_UNESCAPED_UNICODE);

Sortir:

 {"message":"Cliquez ici:Liens à partir du nom de domaine:m66.net Vérifiez les détails"}

Cette méthode peut traiter de manière flexible les informations d'URL et même être utilisées pour des politiques de sécurité telles que les sources statistiques et le filtrage du nom de domaine.

5. Résumé

Grâce à MB_EREGI_REPLACE , nous pouvons remplacer efficacement et en toute sécurité le contenu de la chaîne en plusieurs langues; Combiné avec l'utilisation raisonnable de JSON_ENCODE () , nous pouvons nous assurer que la structure et le contenu des données pendant la transmission ne sont pas corrompus. Cette combinaison est très pratique dans le développement de PHP moderne, en particulier dans la construction d'applications internationales, le traitement riche en texte, l'examen de la sécurité et d'autres scénarios.

La maîtrise de l'application combinée de ces deux fonctions améliorera considérablement votre capacité dans le prétraitement des données et la transmission sécurisée.