PHP 개발에서는 종종 이메일 주소를 확인하거나 분석해야합니다. 예를 들어, 이메일 주소가 특정 도메인 이름 (예 : gmail.com , M66.net 등)에 속하는지 확인해야 할 수도 있습니다. 현재 stripos () 함수는 유용 할 수 있습니다.
stripos () 는 PHP의 문자열 함수로, 대상 문자열에서 하위 문자열이 먼저 나타나는 위치를 찾습니다. strpos () 와 달리 strpos () 는 케이스에 민감하지 않으며 이메일 주소를 처리 할 때 매우 유용합니다. 이메일 주소의 도메인 부분은 일반적으로 대소 문자를 사용하지 않기 때문입니다.
함수 정의는 다음과 같습니다.
int|false stripos ( string $haystack , mixed $needle [, int $offset = 0 ] )
$ haystack은 검색 할 문자열입니다.
$ 바늘은 당신이 찾고 싶은 것입니다.
$ 오프셋은 검색을 시작할 위치를 나타내는 선택적 매개 변수입니다.
발견 된 경우 위치 색인을 반환합니다 (0부터 시작); 찾을 수 없으면 false를 반환하십시오.
실용적인 예를 살펴 보겠습니다. 사용자가 제출 한 이메일 주소가 M66.net 도메인에 속하는지 여부를 결정하려고한다고 가정합니다.
<?php
function isM66Email($email) {
// 도메인 이름을 이메일 주소의 부분을 추출하십시오
$domain = substr(strrchr($email, "@"), 1);
// 사용 stripos 그것이 있는지 여부를 결정하십시오 m66.net
if (stripos($domain, 'm66.net') !== false) {
return true;
}
return false;
}
// 샘플 이메일
$email1 = 'user123@m66.net';
$email2 = 'someone@gmail.com';
var_dump(isM66Email($email1)); // 산출: bool(true)
var_dump(isM66Email($email2)); // 산출: bool(false)
?>
strrchr ($ email, " @")을 사용하여 사서함에서 마지막 @ 이후 문자열을 가져옵니다. 즉, 도메인 이름.
substr ()를 사용하여 시작 @ 기호를 제거하십시오.
Stripos ()를 사용하여 도메인 이름에 m66.net이 포함되어 있는지 확인하십시오.
stripos () 는 위치 색인 (아마도 0 )을 반환하므로 수렴 ! == 거짓을 사용하여 발견되었는지 여부를 결정해야합니다.
이메일 주소가 특정 회사 또는 조직에서 나오는지 여부를 결정하십시오.
배치 필터는 도메인 이름의 등록 된 사용자입니다.
다른 도메인 이름의 이메일 주소를 개인화하십시오.
Stripos ()는 편리하지만 도메인 이름을 정확하게 일치시키고 ABC.m66.net 과 같은 하위 도메인을 일치시키지 않으려면 다음과 같은 엄격한 문자열 비교 방법을 사용하는 것이 좋습니다.