복붙노트

전자 메일 주소 유효성 검사를위한 PHP 라이브러리가 있습니까? [닫은]

PHP

전자 메일 주소 유효성 검사를위한 PHP 라이브러리가 있습니까? [닫은]

내 사용자의 이메일 주소를 확인해야합니다. 불행히도 표준에 부합하는 유효성 검사기를 만드는 것은 어렵습니다.

다음은 표준을 따르는 정규 표현식의 예제입니다.

전자 메일 주소의 유효성을 검사하는 PHP 라이브러리 (가능하면 오픈 소스가 있습니까?)가 있습니까?

해결법

  1. ==============================

    1.PHP의 filter_ 함수를 보셨습니까? 그들은 완벽하지는 않지만 내 경험으로는 상당히 괜찮은 일을합니다.

    PHP의 filter_ 함수를 보셨습니까? 그들은 완벽하지는 않지만 내 경험으로는 상당히 괜찮은 일을합니다.

    사용 예 (boolean 반환) :

    filter_var ($ someEmail, FILTER_VALIDATE_EMAIL);

  2. ==============================

    2.AFAIK, 전자 메일을 확인하는 유일한 좋은 방법은 전자 메일을 보내고 사용자가이 전자 메일의 링크를 사용하여 사이트로 되돌아가는 지 확인하는 것입니다. 그게 많은 사이트들이하는 일입니다.

    AFAIK, 전자 메일을 확인하는 유일한 좋은 방법은 전자 메일을 보내고 사용자가이 전자 메일의 링크를 사용하여 사이트로 되돌아가는 지 확인하는 것입니다. 그게 많은 사이트들이하는 일입니다.

    잘 알려진 매머드 정규 표현식에 대한 링크를 지적하면서 모든 형태의 전자 메일 주소를 확인하는 것은 어렵고 불가능합니다. 사소한 스타일의 전자 메일 (전자 메일 주소에서 대문자를 거부하는 사이트가 너무 많았으며 대다수의 오래된 정규식은 4 자 이상의 TLD를 거부했습니다!)에서도 잘못하기 쉽습니다.

    AFAIK, "Jean-Luc B. O'Grady"@ example.com 및 e = mc ^ 2 @ [82.128.45.117]은 유효한 주소입니다 ... I-Made-It-Up @ Absurd-Domain-Name. 정보가 유효하지 않을 수 있습니다.

    그래서 어떻게 든 우리는 뭔가 고유 한 @, 뭔가 다른 것을 가지고 있는지 확인하고 그것과 함께 간다. 전자 메일 주소 대신 빈 필드 나 사용자 이름과 같은 대부분의 사용자 오류를 잡을 것이다. 사용자가 위조 된 주소를 제공하려는 경우 올바르지 않은 모양이 표시됩니다 (see@on.tv 또는 bill.gates@microsoft.com). 그리고 validator는 오타 (john.b@example.com 대신에 jhon.b@example.com)를 잡을 수 없습니다.

    전체 RFC에 대해 전자 메일을 실제로 확인하려면 정규식을 사용하여 @를 분리 한 다음 로컬 이름과 도메인 이름을 별도로 확인하는 것이 좋습니다. 다른 경우 등에서 시작하는 로컬 이름의 대 / 소문자 구분. [다른 경우와 다른 도메인 이름의 경우는 별도로 시작하십시오.] 더 작은 특정 도메인에서 문제를 나누고 잘 정의 된 간단한 경우에만 regexes를 사용하십시오. 이 충고는 물론 많은 정규 표현식에 적용될 수 있습니다 ...

  3. ==============================

    3.[업데이트 됨] 전자 메일 주소 유효성 검사에 대해 알고있는 모든 내용을 정리했습니다. http://isemail.info는 전자 메일 주소의 문제를 검증하고 문제를 진단합니다. 나는 여기에 많은 의견과 함께 검증은 답변의 일부일 뿐이라고 동의한다. http://isemail.info/about에서 에세이를 참조하십시오.

    [업데이트 됨] 전자 메일 주소 유효성 검사에 대해 알고있는 모든 내용을 정리했습니다. http://isemail.info는 전자 메일 주소의 문제를 검증하고 문제를 진단합니다. 나는 여기에 많은 의견과 함께 검증은 답변의 일부일 뿐이라고 동의한다. http://isemail.info/about에서 에세이를 참조하십시오.

    필자는 Cal Henderson, Dave Child, Phil Haack, Doug Lovell 및 RFC 3696의 테스트 케이스를 정리했습니다. 모두 158 개의 테스트 주소.

    내가 찾은 모든 유효성 검사기에 대해이 모든 검사를 실시했습니다. 비교 결과는 다음과 같습니다. http://www.dominicsayers.com/isemail

    사람들이 검증자를 강화하면서이 페이지를 최신 상태로 유지하려고 노력할 것입니다. Cal, Dave, Phil에게 도움을 주신 데 감사드립니다.이 테스트를 컴파일하고 자신의 유효성 검사기에 대한 건설적인 비판을 전했습니다.

    사람들은 특히 RFC 3696에 대한 정오표를 알고 있어야합니다. 표준 예제 중 세 가지가 실제로 유효하지 않은 주소입니다. 주소의 최대 길이는 320이 아니라 254 또는 256 자입니다.

  4. ==============================

    4.Cal Henderson (Flickr)은 RFC 822 호환 전자 메일 주소 일치 프로그램을 작성하여 RFC 및 전자 메일 주소와 일치시키는 RFC를 활용하는 코드에 대한 설명을 제공합니다. 나는 꽤 오랫동안 불만없이 사용 해왔다.

    Cal Henderson (Flickr)은 RFC 822 호환 전자 메일 주소 일치 프로그램을 작성하여 RFC 및 전자 메일 주소와 일치시키는 RFC를 활용하는 코드에 대한 설명을 제공합니다. 나는 꽤 오랫동안 불만없이 사용 해왔다.

    ... 업데이트 ...

    코멘트에 Porges가 지적했듯이 링크의 라이브러리는 구식이지만 해당 페이지에는 업데이트 된 버전에 대한 링크가 있습니다.

  5. ==============================

    5.Google 코드에서 라이브러리를 발견했습니다. http://code.google.com/p/php-email-address-validation/

    Google 코드에서 라이브러리를 발견했습니다. http://code.google.com/p/php-email-address-validation/

    다른 사람들이 있습니까?

  6. ==============================

    6.Zend_Validate는 이메일 검사기를 포함합니다.

    Zend_Validate는 이메일 검사기를 포함합니다.

    유효성 검사를위한 많은 정규 표현식이 있습니다. 매우 기초적인 것에서부터 매우 진보 된 것까지 모두 있습니다. 애플리케이션에서 유효한 이메일의 중요성과 일치하는 것을 선택해야합니다.

  7. ==============================

    7.Zend_Validate_EmailAddress [소스]의 소스 코드를 살펴볼 것을 권합니다.

    Zend_Validate_EmailAddress [소스]의 소스 코드를 살펴볼 것을 권합니다.

    의존성을 수정 한 후에는 다음을 수행하면됩니다.

    $mail_validator = new Zend_Validate_EmailAddress();
    $mail_validator->isValid($address);   // returns true or false
    

    가장 좋은 방법은 svn external를 통해 프로젝트에 전체 Zend Library를 가져 와서 include 경로를 지정하는 것입니다.

    하지만 필요한 파일 (1,2,3,4,5,6)을 다운로드하고 모두 포함시킬 수 있습니다 (require_once 호출을 제거하십시오)

  8. from https://stackoverflow.com/questions/161342/is-there-a-php-library-for-email-address-validation by cc-by-sa and MIT license