Düzenli ifadeler kullanarak yapabileceğimiz yani RegEx kullanarak yapabileceğimiz birşeyi söyleyeyim. E-mail dogrulama işlemini. İletişim sayfasından sorulmuş bende bununla ilgili yazayım dedim.
@ornek şeklinde doğrulanacak diyelim. Gerçek e-posta adresleri oldugunu anlamamız gerekiyor. Bunun için ilk çözüm @ olabilir. Ama ardından gelen ornek @ localhost ya da ‘t @ şeklinde bir adres olabilir. Ama bu spam’a yol açabilir. Noktalama işaretleri kullanılamıyor çünkü. Örnekle gösterecek olursak
Gereksinimler
PHP 5.2.0 veya daha yüksek bir sürüm. Ayrıca ek olarak filter_var fonksiyonu da gereklidir.
Filter_var kullanma ve etki alanı kontrol bölümü .(nokta) içerir.
Şimdi test edeceğimiz kodu kolaylıkla yapmak için bir fonksiyon içine koyduk. İsterseniz fonksiyonumuza bakalım.
function emailOnayla($adres) { return filter_var($adres, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $adres); }
filter_var etki alanı yani ornek.com bölümüde dahil olmak üzere tüm e-posta adresinin kontrolünü sağlar. Düzenli ifade @ sembolünden sonra bakar etki alanı yani domain kontrolünü yapar.
Örnekler
Eğer geçerli ise 1, değilse 0 durumunu görüyoruz. Bu örneklerde sonuçları göreceğiz. Yorum satırı olarak
echo (int) emailOnayla('ali@ornek'); // 0 echo (int) emailOnayla('chris@ornek.'); // 0 echo (int) emailOnayla('ali@ornek.com'); // 1 echo (int) emailOnayla('ali@ornek.com.'); // 0 echo (int) emailOnayla('ali@ornek@ornek.com'); // 0 echo (int) emailOnayla('ali#ornek.com'); // 0 echo (int) emailOnayla('ali@benim.ornegim.sitem.com'); // 1
Anlatım bukadardır arkadaşlar 🙂