현재 위치: > 최신 기사 목록> 이메일 주소에서 도메인 이름 부분을 교체하십시오

이메일 주소에서 도메인 이름 부분을 교체하십시오

M66 2025-05-28

PHP에서 문자열 교체 작업, 특히 다중 바이트 문자 인코딩 (예 : UTF-8)을 처리 할 때 MB_EREGI_REPLAPE 기능은 매우 유용한 도구입니다. 그것은 정규 표현 일치를 지원할뿐만 아니라 어퍼 케이스를 무시하는 속성을 가지고 있으며 멀티 바이트 인코딩과 호환됩니다.

이 기사에서는 MB_EREGI_REPLACE 기능을 사용하여 이메일 주소의 도메인 이름 부분을 대체하는 방법을 소개합니다. 예를 들어, 이메일 주소 세트가 있다고 가정 하고이 주소의 모든 도메인 이름을 M66.net 으로 바꾸려고합니다.


mb_eregi_replace 소개

MB_EREGI_REPLACE 의 구문은 다음과 같습니다.

 mb_eregi_replace($pattern, $replacement, $string, $option = 'msr');
  • $ 패턴은 일치하는 정규 표현식입니다 (Case Insensentitive).

  • $ 대체는 교체 컨텐츠입니다.

  • $ string은 처리 할 문자열입니다.

  • $ 옵션은 일반적으로 기본적으로 일반 표현식의 일치 옵션입니다.


도메인 이름을 이메일로 바꾸십시오

문제 분석

이메일 주소의 일반적인 형식은 사용자 이름@도메인 이름 입니다.

  • 사용자 이름 부분은 모든 문자 일 수 있습니다 ( @ 제외)

  • 도메인 이름 부분은 일반적으로 xxx.xxx 형태입니다.

목표는 @ 이후의 도메인 이름을 m66.net 으로 바꾸는 것입니다.


코드 예제

 <?php
// 테스트 email 주소
$email = "user123@example.com";

// 사용 mb_eregi_replace 도메인 이름 부분을 교체하십시오
// 설명하다:
// 1. 정규 표현으로,@ 끝까지 공백을 제외한 모든 문자와 일치 한 후
// 2. 대체하십시오 @m66.net

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

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

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

코드 설명

  • @[^\\ s]+$ 정규 표현식

    • @는 이메일로 일치하는 @ 문자입니다.

    • [^\\ s]+는 비 whitescace 문자 (즉, 도메인 이름 부분)와 일치하는 연속 문자를 의미합니다.

    • $는 문자열의 끝을 의미합니다.

  • @m66.net 으로 바꾸고 도메인 이름 부품의 교체를 고정 된 m66.net 으로 구현하십시오.


여러 이메일 주소를 처리하는 예

배치로 교체 해야하는 여러 이메일이있는 경우 :

 <?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";
}

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