PHP의 FILTER_VALIDATE_EMAIL이 제대로 작동하지 않습니다.
P粉649990163
P粉649990163 2023-07-20 14:17:02
0
2
486

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

으아아아

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

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

.

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

P粉649990163
P粉649990163

모든 응답(2)
P粉715228019

FILTER_VALIDATE_EMAIL은 PHP 5.2.14

를 지원하지 않습니다.
P粉066725148

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

유효한 이메일 주소

  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의 수업 링크입니다(링크가 끊어졌습니다. 아래 소스 코드 참조). 으아악

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!