5 funções em PHP para validação
Atualizado em:
Separei algumas funções muito úteis que criei e outras adaptei para o Gospel 10 para validações em geral, confiram:
1. Função para validar URL
function validar_url($url) {
return preg_match('|^http(s)?://[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
2. Função para validar um domínio
Nesta função são passados a URL a ser verificada e o domínio que ela deve pertencer, ex:
Ela depende da função validar_url(); mostrada anteriormente
function validar_dominio($url,$validar){
if (!validar_url($url))
return false;
if (eregi($validar,$url))
return true;
return false;
}
3. Validar email
function verificar_email($email){
$mail_correcto = 0;
//verifico umas coisas
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//vejo se tem caracter .
if (substr_count($email,".")>= 1){
//obtenho a terminação do dominio
$term_dom = substr(strrchr ($email, '.'),1);
//verifico que a terminação do dominio seja correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//verifico que o de antes do dominio seja correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return 1;
else
return 0;
}
4. Validar Hora
function validaHora($hora){
$t=explode(":",$hora);
if ($t=="")
return false;
$h=$t[0];
$m=$t[1];
if (!is_numeric($h) || !is_numeric($m) )
return false;
if ($h<0 || $h>24)
return false;
if ($m<0 || $m>59)
return false;
return true;
}
5. Valida Data
function validaData($data){
$t=explode("/",$data);
if ($t=="")
return false;
$dia=$t[0];
$mes=$t[1];
$ano=$t[2];
if (!is_numeric($dia) || !is_numeric($mes) || !is_numeric($ano))
return false;
if ($dia<1 || $dia>31)
return false;
if ($mes<1 || $mes>12)
return false;
if ($ano<1800 || $ano>2100)
return false;
return true;
}
Deixe um comentário