Position actuelle: Accueil> Derniers articles> Le problème du cas en mode régulier ne se rend pas compte que MB_ERGI_REPLACE est insensible au cas

Le problème du cas en mode régulier ne se rend pas compte que MB_ERGI_REPLACE est insensible au cas

M66 2025-06-02

Dans la programmation PHP, nous utilisons souvent des fonctions d'expression régulières lorsque nous traitons de la substitution de la chaîne. De nombreux développeurs ont peut-être entendu parler de la fonction MB_ERGI_REPLACE , mais savez-vous que c'est en fait insensible à la cas? Cela a un impact important sur les problèmes de cas en mode régulier.

Introduction à la fonction MB_EREGI_REPLACE

MB_ERG_REPLACE est une fonction de remplacement régulière utilisée en PHP pour les chaînes multi-octets. Sa caractéristique est insensible à la casse , qui contraste fortement avec MB_EREG_REPLACE (sensible au cas). Le "I" représente ici "Ignore Case", ce qui signifie ignorer la partie supérieure et les minuscules.

La forme de définition de la fonction est la suivante:

 mb_eregi_replace($pattern, $replacement, $string, $option = "msr")
  • $ motif est un modèle d'expression régulière et ne nécessite pas de modificateur de cas supplémentaire i .

  • $ Remplacement est le contenu de remplacement.

  • $ String est la chaîne cible.

  • L'option $ est un modèle correspondant et peut être personnalisée.

La différence entre la sensibilité à la caisse et l'insensible

Dans la fonction prég_replace traditionnelle, si vous souhaitez ignorer le cas, vous devez ajouter un modificateur I à la fin de l'expression régulière, par exemple:

 preg_replace('/php/i', 'PHP', 'I love Php');

Le résultat remplacera tous les cas "php".

Cependant, MB_EREGI_REPLACE est né pour ignorer la haute et les minuscules sans ajouter I , par exemple:

 <?php
$original = "Hello Mb_EreGi_ReplAce Function!";
$result = mb_eregi_replace("mb_eregi_replace", "mb_eregi_replace", $original);
echo $result;
?>

Que l'entrée soit MB_ERGI_REPLACE , MB_ERGI_REPLACE ou MB_ERGI_REPLACE , elle peut être remplacée par la correspondance correcte.

Exemples d'utilisation réels

 <?php
$text = "Visit https://m66.net for more info.";
$pattern = "M66.NET";
$replacement = "example.com";

// utiliser mb_eregi_replace Remplacement insensible au cas
$result = mb_eregi_replace($pattern, $replacement, $text);
echo $result;
?>

Sortir:

 Visit https://example.com for more info.

Notez que le modèle $ est en majuscule et que l'URL dans $ text est minuscule, mais il correspond toujours avec succès.

Pourquoi faire attention aux problèmes de cas?

Lorsque vous traitez avec des URL, des boîtes aux lettres, des chemins de fichier, etc., la sensibilité des caisses est énorme. Surtout lors de l'utilisation d'un caractère multi-octets, l'utilisation d'une fonction régulière normale peut provoquer du code brouillé ou une défaillance correspondante.

MB_EREGI_REPLACE utilise un mécanisme de correspondance multi-octets en interne, tout en ignorant les travaux de codage supérieurs et inférieurs, simplifiant les travaux de codage.

Résumer

  • MB_ERGI_REPLACE est une fonction de remplacement régulière multi-octe insensible à la caisse.

  • Il n'est pas nécessaire d'ajouter manuellement un modificateur I.

  • Convient pour gérer les chaînes de mulabilte et les exigences de remplacement insensibles à la casse.

  • Lors du remplacement des noms de domaine URL, il n'est pas nécessaire de se soucier du cas du nom de domaine.

La prochaine fois que vous utiliserez un remplacement régulier en PHP, n'oubliez pas de sélectionner les fonctions raisonnablement pour éviter les défaillances de correspondance causées par les problèmes de cas. MB_ERGI_REPLACE peut vous éviter beaucoup de problèmes.