찾다

 >  Q&A  >  본문

PHP의 FILTER_VALIDATE_EMAIL이 제대로 작동하지 않습니다.

PHP 버전 5.3.10을 사용하고 있습니다. 코드는 다음과 같습니다.

으아아아

반환: "이메일: test@example.c가 정확합니다.

한 문자 TLD가 잘못된 것 같습니다(이 목록에 따르면: http://data.iana.org/TLD/tlds-alpha-by -domain). .txt, 문자 길이의 최상위 도메인이 있는지 몰랐습니다)

.

그렇다면 FILTER_VALIDATE_EMAIL 필터가 제대로 작동하나요?

P粉649990163P粉649990163517일 전547

모든 응답(2)나는 대답할 것이다

  • P粉715228019

    P粉7152280192023-07-21 13:30:21

    FILTER_VALIDATE_EMAIL은 PHP 5.2.14

    를 지원하지 않습니다.

    회신하다
    0
  • P粉066725148

    P粉0667251482023-07-21 12:50:39

    이메일 주소 확인은 다소 복잡합니다. 다음 목록을 살펴보세요:

    유효한 이메일 주소

    1. niceandsimple@example.com
    2. very.common@example.com
    3. a.little.lengthy.but.fine@dept.example.com
    4. disposable.style.email.with+symbol@example.com
    5. 사용자@[IPv6:2001:db8:1ff::a0b:dbd0]
    6. "much.more 특이한"@example.com
    7. "very.unusual.@.unusual.com"@example.com
    8. "very.(),:;<>[]".VERY."very@ "very".unusual"@strange.example.com
    9. postbox@com(최상위 도메인은 유효한 호스트 이름입니다)
    10. admin@mailserver1(TLD가 없는 로컬 도메인 이름)
    11. !#$%&'*+-/=?^_`{}|~@example.org
    12. "()<>[]:,;@"!#$%&'*+-/=?^_`{}| ~.a"@example.org
    13. " "@example.org(따옴표 사이 공백)
    14. üñîçøðé@example.com (로컬 부분의 유니코드 문자)

    잘못된 이메일 주소

    1. Abc.example.com(@ 문자는 로컬과 도메인을 구분해야 함) 부품)
    2. A@b@c@example.com (따옴표 밖에 @는 하나만 허용)
    3. a"b(c)d,e:f;gi[jk]l@example.com (특수문자 없음 이 로컬 부분에서는 따옴표 밖에도 허용됩니다)
    4. just"not"right@example.com(인용된 문자열은 점으로 구분되어야 합니다. 로컬 부분을 구성하는 유일한 요소)
    5. 이것은 "notallowed@example.com입니다(공백, 따옴표 및 백슬래시는 인용된 문자열 내에 있고 앞에 백슬래시가 올 때만 존재합니다.)
    6. this still"notallowed@example.com(이스케이프된 경우에도(앞에 백슬래시), 공백, 따옴표 및 백슬래시는 여전히 있어야 합니다. 따옴표로 묶음)

    출처 http://en.wikipedia.org/wiki/Email_address

    대부분의 모든 이메일 확인 구현은 "버그"가 있지만 PHP 구현은 모든 일반 이메일 주소를 허용하므로 잘 작동합니다.

    업데이트:

    찾은 곳: http://www.php.net/manual/en/filter.filters.validate.php

    존재하지 않는 '일부' 주소에 대해. 도메인 섹션에서 소스 코드(ext/filter/logical_filters.c)의 주석은 이러한 거부를 증명합니다.

    으아악

    다음은 RFC 5321/5322를 지원하는 Michael Rushton의 수업 링크입니다(링크가 끊어졌습니다. 아래 소스 코드 참조). 으아악

    회신하다
    0
  • 취소회신하다