2010-09-19 26 views
0

Depuis erigi() est dépréciée en PHP 5 et je suis dans un besoin de valider un identifiant e-mail, dont la fonction doit être ...? plus s'il vous plaît donner le format pour la validation e-mail tels que:PHP erigi: dépréciée (Validation e-mail)

<?php 
function checkEmail($email) 
{ 
    if(eregi("^[a-zA-Z0-9_][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) 
    { 
     return FALSE; 
    } 

    list($Username, $Domain) = split("@",$email); 

    if(getmxrr($Domain, $MXHost)) 
    { 
     return TRUE; 
    } 
    else 
    { 
     if(fsockopen($Domain, 25, $errno, $errstr, 30)) 
     { 
     return TRUE; 
     } 
     else 
     { 
     return FALSE; 
     } 
    } 
} 
?> 

Répondre

2

Utilisez la fonction filter_var PHP à la place:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 

} 

Ou, encore mieux encore, utilisez un RFC-compliant email address validator. Comme aucun montant de regex englobera tous les e-mails valides qui sont possibles.

0

exemple avec Fr avec l'extension du filtre.

<?php 
function is_valid_email($email) 
{ 
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false; 
} 

var_dump(is_valid_email('[email protected]')); 
var_dump(is_valid_email('foobar')); 
var_dump(is_valid_email('[email protected]')); 

[~]> php x.php 
bool(true) 
bool(false) 
bool(true) 

Ceci vous pouvez ensuite combiner avec une validation supplémentaire que vous avez déjà.