Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
estou usando essa função para vaidar e-mail estava tudo ok, agora no php7
dar erro, alguem sabe me dizer como posso corrigir?
esse é o erro:Uncaught Error: Call to undefined function eregi()
function validarEmail($email) {
if (!eregi("^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$", $email)) {
return $this->mensagens(0, 'email', null, null);
}
}http://php.net/manual/en/function.eregi.php
Warning
This function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0.
Alternatives to this function include:
preg_match() (with the i (PCRE_CASELESS) modifier)
Essa função está obsoleta http://php.net/manual/pt_BR/function.eregi.php.
Use preg_match http://php.net/manual/pt_BR/function.preg-match.php
Use filter_var como o @Eserra citou. Para fins de conhecimento deixo um exemplo tosco
Obs. Edite o título aí, seria "Expressões regulares"
Olá Marcos,
Obrigado,
essa funciona bakana, não entendi a string $matches
$re = "/^[a-z0-9_\\.\\-]+@[a-z0-9_\\.\\-]*[a-z0-9_\\-]+\\.[a-z]{2,4}/";
$str = "1231@asdf.com";
if (!preg_match($re, $str, $matches) ):
echo 'false';
else:
echo 'email ok';
endif;Dá um print_r($matches); que entenderá fácil.
Mas eu utilizaria o filter_var. Além de ser uma função nativa bem mais fácil de utilizar.
A $matches, no seu caso, é desnecessária. Pois ela retornará os grupos que "casaram" na sua ER. No seu caso, você quer apenas que diga se é válido ou não.
Além do mais, para o seu caso, filter_var é mais aconselhado. Conforme já foi comentado.
Basta consultar o manual:
http://php.net/eregi
Aviso Esta função está OBSOLETA no PHP 5.3.0 e foi REMOVIDA no PHP 7.0.0.
Se quer validar um e-mail basta usar filter_var.