PHP 자체 테이프 방법 으로 메 일이 존재 하 는 지 확인

PHP 에서 메 일 주 소 를 검사 하 는 방법 은 매우 많 습 니 다.비교적 자주 사용 하 는 것 은 바로 자신 이 정규 를 쓰 는 것 입 니 다.그러나 정규 가 얼마나 번 거 로 운 지 저 는 PHP 에서 자체 적 으로 방법 을 가지 고 검 사 를 했 습 니 다.
filter_var
filter_var 는 PHP 에 내 장 된 변수 필터 방법 으로 정수,부동 소수점,메 일,URL,MAC 주소 등 을 검사 할 수 있 는 실 용적 인 필 터 를 많이 제공 합 니 다.
filter_var 가 false 로 돌아 가면 변 수 는 필 터 를 통과 할 수 없다 는 것 을 설명 합 니 다.즉,비합법적 입 니 다.

$email = "[email protected]";
 
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
 
 
$email = "asb";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
 
$email = "[email protected]";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
출력:

string(21) "[email protected]"
bool(false)
string(7) [email protected]
asb 라 는 불법 메 일 형식 에 대해 서 는 false 로 되 돌 아 왔 으 나[email protected]에 대해 서 는 통과 되 었 으 니 약간의 흠 이 있 습 니 다.
그러나 일반적인 정규 도[email protected]가 합 법 적 인 메 일 로 여 겨 지 는데 어떤 방법 으로 더 정확하게 검증 할 수 있 습 니까?
checkdnsrr
checkdnsrr 는 지정 한 호스트 의 DNS 기록 을 조회 하 는 데 사 용 됩 니 다.메 일이 존재 하 는 지 확인 할 수 있 습 니 다.
[email protected]에 대해 서 는 MX 기록 이 존재 하지 않 는 것 이 분명 하 다.

$email = "[email protected]";
  var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX"));
  $email = "[email protected]";
  var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX"));
출력:

  bool(true)
  bool(false)
완벽 하 다 는 것 을 알 수 있 습 니 다.유일한 단점 은 너무 느 린 것 입 니 다.인터넷 요청 을 해 야 하기 때 문 입 니 다.그래서 대량의 메 일 을 동시에 검사 하 는 데 적합 하지 않다.
filter_var+checkdnsrr
우 리 는 filter 를 연결 할 수 있다.var 와 checkdnsrr 를 검사 합 니 다.절대 다수의 불법 메 일 은 filter 에 있 을 것 입 니 다.var 때 끊 고 나머지 는 다시 사용 합 니 다.
checkdnsrr 진일보 판단.

$email_arr = array("[email protected]", "[email protected]");
  foreach($email_arr as $email) {
    if (filter_var($email) === false) {
      echo "invalid email: $email 
"; continue; } if(checkdnsrr(array_pop(explode("@",$email)),"MX") === false) { echo "invalid email: $email
"; continue; } }
   출력:

invalid email: [email protected]
그러나 주의해 야 할 것 은 MX 기록 만 검사 하기 때문에 163.com 이 존재 한다 고 판단 할 수 있 을 뿐 lastchiliarch 라 는 사용자 가 존재 한 다 는 것 은 설명 할 수 없다 는 점 이다.
메 일의 존 재 를 더 정확하게 판단 하려 면 smtp 서버 에 연결 해서 검증 할 수 밖 에 없습니다.
메 일 박스 인증,PHP 자체 방법 으로 메 일 박스,URL,IP 가 합 법 적 인지 검증 하 는 방법 을 소개 합 니 다.다음은 다음 과 같 습 니 다.
주로 filter 를 사용 합 니 다.var 함수.
문법
filter_var(variable, filter, options)
variable 필수.필터 할 변 수 를 규정 합 니 다.
filter 선택 가능.사용 할 필터 의 ID 를 지정 합 니 다.
options 는 표지/옵션 을 포함 하 는 배열 을 규정 합 니 다.모든 필터 의 가능 한 표지 와 옵션 을 검사 합 니 다.
PHP Filters

Example #1 A filter_var() example

<?php

var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));

var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));

?>

이상 루틴 출력:

string(15) "[email protected]"
bool(false)
이상 은 본 고의 모든 내용 입 니 다.여러분 에 게 phop 메 일 인증 을 하 는 데 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기