有効なメールアドレスです。だから...私は問題を見ない。しかし、あなたは、この(許可されたあなたはそれを少し短くすることができますので、これは、1つの関数にフィルタ - すべてのメソッドを利用)のような何かを行うことができます。
function filtervariable($string,$type,$method) {
//function for sanitizing variables using PHPs built-in filter methods
$validEmail = false;
if ($method == 'sanitize') {
$filtermethod = 'FILTER_SANITIZE_';
} elseif ($method == 'validate') {
$filtermethod = 'FILTER_VALIDATE_';
} else {
return;
}
switch ($type) {
case 'email':
case 'string':
case 'number_int':
case 'int':
case 'special_chars':
case 'url':
$filtertype = $filtermethod.strtoupper($type);
break;
}
if ($filtertype == 'FILTER_VALIDATE_EMAIL' && !empty($string)) {
list($local,$domain) = explode('@',$string);
$localLength = strlen($local);
$domainLength = strlen($domain);
$checkLocal = explode('.',$domain);
if (($localLength > 0 && $localLength < 65) && ($domainLength > 3 && $domainLength < 256) && (checkdnsrr($domain,'MX') || checkdnsrr($domain,'A') || ($checkLocal[1] == 'loc' || $checkLocal[1] == 'dev' || $checkLocal[1] == 'srv'))) { // check for "loc, dev, srv" added to cater for specific problems with local setups
$validEmail = true;
} else {
$validEmail = false;
}
}
if (($filtertype == 'FILTER_VALIDATE_EMAIL' && $validEmail) || $filtertype != 'FILTER_VALIDATE_EMAIL') {
return filter_var($string, constant($filtertype));
} else {
return false;
}
}
うん、私はそれが標準規格に従った有効なEメールアドレスを知っているが、誰もドメインの代わりにIPアドレスを使用する人はいません。また、フィルタを通過する有効ではありえない奇妙な電子メールの例がたくさんあります。私は、あなたが含まれている機能を見てみましょう、ありがとう! – Hector
@Hector特に['checkdnsrr'](http://php.net/manual/en/function.checkdnsrr.php#117880)では一見しています。 –
「誰もいない」というのはちょっとした分類です。 IPに電子メールを送ることは完全に有効ですが、一般的ではありませんが、あまり知られていない電子メールを持つ方法です.IP上に電子メールサーバーを設定し、IPが特に登録されていない限り、それを追跡することは少し難しいものになります(例えば何も偽造することなく)。 – junkfoodjunkie