これは奇妙に聞こえますが、私はこの関数をかなり前から使用しており、「突然、ある日から別の日に」、一部のアドレスを正しい方法でフィルタリングしなくなりました。しかし、理由がわかりません...
function validate_email($email)
{
/*
(Name) Letters, Numbers, Dots, Hyphens and Underscores
(@ sign)
(Domain) (with possible subdomain(s) ).
Contains only letters, numbers, dots and hyphens (up to 255 characters)
(. sign)
(Extension) Letters only (up to 10 (can be increased in the future) characters)
*/
$regex = '/([a-z0-9_.-]+)'. # name
'@'. # at
'([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
'.'. # period
'([a-z]+){2,10}/i'; # domain extension
if($email == '') {
return false;
}
else {
$eregi = preg_replace($regex, '', $email);
}
return empty($eregi) ? true : false;
}
たとえば、「some @ gmail」は正しいものとして表示されるので、tldで発生したようです-誰かが理由を教えてもらえますか?
事前にどうもありがとうございました!