Mailde Bazı Karakterleri Şifreli Göstermek

Sitemizde paylaştığımız mail adresleri, arama motorları, rehber siteler gibi içerik toplayıcılar sayesinde çok kolaylıkla alınıp insanların kullanımına fayda sağlayabilir.

Buradan yola çıkarak değil ama örneğin kredi kartı bilgisini bir siteye tanımladığınızda daha sonrasında güvenlik için kredi kartınızın ilk ve son 4 hanesini gösterir tarzında mail listesi sunduğunuz ve bu maillerin belli başlı karakterlerin gösterilmesini istediğiniz olabilir düşüncesiyle aşağıdaki uygulamayı yaptım.

Uygulama belirttiğiniz karakter sayısınca maili şifrelemektedir.

function mailEncode( $mail, $hiddenChar = 'auto',$replace = '*' ){
	
	if ( !$mail ){
		return false;
	}
	
	$tmpLen = strlen($mail);
	
	if ( $hiddenChar == 'auto' ){
		$tmpCount = ceil( $tmpLen / 4 );
	} else {
		$tmpCount = $tmpLen > $hiddenChar ? $hiddenChar : ( $tmpLen-1 );
	}
	
	$tmpText = explode( '@' , $mail );
	
	for($i=0;$i<count($tmpText);$i++ ){
		for($k=0;$k<$tmpCount;$k++ ){
			$rand = rand(1,strlen($tmpText[$i])-1 );
			if ( substr($tmpText[$i],$rand,1) == '.' ){
				$tmpCount++;
			} else {
				$tmpText[$i] = substr_replace( $tmpText[$i],$replace,$rand, 1 );
			}
		}
	}
	
	return implode('@',$tmpText);
	
}
echo mailEncode( 'info@vyz.gen.tr' );

Paylaş: