Rumah > php教程 > PHP源码 > teks badan

目前最符合规范的PHP版Email地址验证代码

PHP中文网
Lepaskan: 2016-05-25 17:14:31
asal
1050 orang telah melayarinya


function validEmail($email) {
	$isValid = true;
	$atIndex = strrpos ( $email, "@" );
	if (is_bool ( $atIndex ) && ! $atIndex) {
		$isValid = false;
	} else {
		$domain = substr ( $email, $atIndex + 1 );
		$local = substr ( $email, 0, $atIndex );
		$localLen = strlen ( $local );
		$domainLen = strlen ( $domain );
		if ($localLen < 1 || $localLen > 64) {
			// local part length exceeded
			$isValid = false;
		} else if ($domainLen < 1 || $domainLen > 255) {
			// domain part length exceeded
			$isValid = false;
		} else if ($local [0] == &#39;.&#39; || $local [$localLen - 1] == &#39;.&#39;) {
			// local part starts or ends with &#39;.&#39;
			$isValid = false;
		} else if (preg_match ( &#39;/\\.\\./&#39;, $local )) {
			// local part has two consecutive dots
			$isValid = false;
		} else if (! preg_match ( &#39;/^[A-Za-z0-9\\-\\.]+$/&#39;, $domain )) {
			// character not valid in domain part
			$isValid = false;
		} else if (preg_match ( &#39;/\\.\\./&#39;, $domain )) {
			// domain part has two consecutive dots
			$isValid = false;
		} else if (! preg_match ( &#39;/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\&#39;*+?^{}|~.-])+$/&#39;, str_replace ( "\\\\", "", $local ) )) {
			// character not valid in local part unless 
			// local part is quoted
			if (! preg_match ( &#39;/^"(\\\\"|[^"])+"$/&#39;, str_replace ( "\\\\", "", $local ) )) {
				$isValid = false;
			}
		}
		//5.3.0 This function is now available on Windows platforms. 
		if ($isValid && ! (checkdnsrr ( $domain, "MX" ) || checkdnsrr ( $domain, "A" ))) {
			// domain not found in DNS
			$isValid = false;
		}
	}
	return $isValid;
}
Salin selepas log masuk

                   

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan