PHP バージョン 5.3.10 を使用しています。コードは次のとおりです:
返される内容: 「電子メール: test@example.c は正しいです。
1 文字の TLD は間違っていると思います (このリストによると: http://data.iana.org/TLD / tlds-alpha-by-domain.txt、文字長のトップレベル ドメインがあるとは知りませんでした)。
それでは、FILTER_VALIDATE_EMAIL フィルターは適切に機能しますか?
FILTER_VALIDATE_EMAIL は PHP 5.2.14
メールアドレスの確認は少し複雑です。このリストを見てください:
A@b@c@example.com (引用符の外側に @ を 1 つだけ使用できます)
更新:
存在しない「部分的な」アドレスについて。ドメイン セクションでは、ソース コード (ext/filter/logical_filters.c 内) のコメントがこの拒否を証明しています:
ここに、RFC 5321/5322 をサポートする Michael Rushton のクラスへのリンクがあります (リンクが切れています。以下のソース コードを参照してください)。 リーリー
FILTER_VALIDATE_EMAIL は PHP 5.2.14
をサポートしていませんメールアドレスの確認は少し複雑です。このリストを見てください:
###有効な電子メールアドレス###A@b@c@example.com (引用符の外側に @ を 1 つだけ使用できます)
a"b(c)d,e:f;gi[j\k]l@example.com (特殊文字は含まれません) このローカル部分では引用符の外側に含めることができます)-
just"not"right@example.com (引用符で囲まれた文字列はドットで区切る必要があります。または
ローカル部分を構成する唯一の要素)-
これは「not\allowed@example.com」です (スペース、引用符、バックスラッシュは使用できます)
引用符で囲まれた文字列内で前にバックスラッシュが付いている場合にのみ存在します)-
this\still"not\allowed@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 のクラスへのリンクがあります (リンクが切れています。以下のソース コードを参照してください)。 リーリー