Position actuelle: Accueil> Derniers articles> Remplacez la partie du nom de domaine dans l'adresse e-mail

Remplacez la partie du nom de domaine dans l'adresse e-mail

M66 2025-05-28

Lors de la gestion des opérations de remplacement de chaîne en PHP, en particulier lors du codage des caractères multi-octets (comme UTF-8), la fonction MB_EREGI_REPLACE est un outil très utile. Il prend en charge non seulement l'appariement de l'expression régulière, mais a également la propriété d'ignorer la partie supérieure et les minuscules et est compatible avec le codage multi-octets.

Cet article présentera comment utiliser la fonction MB_EREGI_REPLACE pour remplacer la partie du nom de domaine dans l'adresse e-mail. Par exemple, supposons que nous ayons un ensemble d'adresses e-mail et que nous voulons remplacer tous les noms de domaine de ces adresses par m66.net .


MB_ERGI_REPLACE INTRODUCTION

La syntaxe de MB_ERGI_REPLACE est la suivante:

 mb_eregi_replace($pattern, $replacement, $string, $option = 'msr');
  • Le modèle $ est l'expression régulière à correspondre (insensible au cas).

  • $ Remplacement est le contenu de remplacement.

  • $ String est la chaîne à traiter.

  • L'option $ est une option de correspondance pour les expressions régulières, généralement par défaut.


Remplacez le nom de domaine par e-mail

Analyse des problèmes

Le format général de l'adresse e-mail est nom d'utilisateur @ nom de domaine , où:

  • La partie du nom d'utilisateur peut être n'importe quel caractère (à l'exclusion @ )

  • La partie de nom de domaine est généralement sous la forme de xxx.xxx

L'objectif est de remplacer le nom de domaine après @ à m66.net .


Exemple de code

 <?php
// Testé email adresse
$email = "user123@example.com";

// utiliser mb_eregi_replace Remplacez la partie du nom de domaine
// expliquer:
// 1. En expression régulière,@ Après avoir fait correspondre tous les personnages sauf les espaces jusqu&#39;à la fin
// 2. Remplacer par @m66.net

$pattern = '@[^\\s]+$';  
$replacement = '@m66.net';

$new_email = mb_eregi_replace($pattern, $replacement, $email);

echo $new_email;  // Sortir:user123@m66.net
?>

Description du code

  • @ [^ \\ s] + $ en expression régulière

    • @ est un caractère correspondant @ par e-mail.

    • [^ \\ s] + signifie des caractères continus correspondant aux caractères non-blancs (c'est-à-dire, partie du nom de domaine).

    • $ signifie la fin de la chaîne.

  • Remplacez-le par @ m66.net et implémentez le remplacement de la pièce de nom de domaine par un M66.net fixe.


Exemple de gestion de plusieurs adresses e-mail

S'il y a plusieurs e-mails qui doivent être remplacés par lots:

 <?php
$emails = [
    "alice@gmail.com",
    "bob@company.org",
    "carol123@sub.domain.net"
];

$pattern = '@[^\\s]+$';
$replacement = '@m66.net';

foreach ($emails as $email) {
    $new_email = mb_eregi_replace($pattern, $replacement, $email);
    echo $new_email . "\n";
}

/*
Sortir:
alice@m66.net
bob@m66.net
carol123@m66.net
*/
?>