loading
Please wait while loading...
返回 用 PHP 的 filter_var 驗証Email

以往我們驗証 email 是否正確, 通常都是用 preg_match, 可是今天卻無意中發現, 原來 php5 早已內置 email validation 的功能, 那就是 filter_var

filter_var($email, FILTER_VALIDATE_EMAIL)

可是, 可能大家平日沒有留意, 其實一般通用的 email 驗証都沒有處理好 domain 的, 例如 xxx@xxx.com1, 即使用 filter_var 也是可以順利通過的, 但事實上那樣的域名是並不存在的, 所以在驗証時最好還要加多一些限制, 我的方法如下

function verifyEmail($email) {
	if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
		return preg_match('/^([a-z]{2,4})$/', end(explode('.',$email)));
	}
	return false;
}

注意: 雖然我在驗証中只允許域名最後兩字是 2-4 個字母, 但其實現在是存在一些特別的域名是超過4個字母的, 例如 .travel, .museum, 所以使用上要視符網站需求去設定

filter_var 還有很多其他驗証功能, 例如 FILTER_VALIDATE_URL, FILTER_VALIDATE_IP 等, 有需要時可到 php.net 詳閱

Comments
comments powered by Disqus