-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Library: Validar
World Wide Web Server edited this page Jul 4, 2012
·
3 revisions
Esta Library ajuda a resolver certos problemas de validação de alguns campos comuns para quem trabalha no Brasil, são eles: CEP, CNPJ, CPF e e-mail. Quem quiser colaborar e colocar mais validações, fique à vontade.
[code] <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); /**
- Library Validar
- @author DGmike http://dgmike.wordpress.com
/
class validar {
/*
- Retira todos os caracteres que nao forem numericos de uma string
- @param string $value
- @return string / function _toNumber ($value) { return preg_replace('/[^0-9]/','',$value); } /*
- Faz a soma dos produtos de um determinado número decomposto, ate o dois.
- Por exeplo, _soma (15346,5) efetuará a seguinte equaçao:
- 51 + 45 + 33 + 24
- Esta funçao e primordial para as funções de cpf e cnpj
- @param integer $value
- @param integer $start
- @return integer
/
function _soma ($value,$start) {
for ($soma=0,$i=$start,$j=0;$i!=1;$i--,$j++) $soma+=$i$value{$j};
return $soma;
}
function cep ($uf,$cep) {
$cep=self::_toNumber($cep);
$uf=strtoupper ($uf);
if ($uf=='SP')
$regex = '/^([1][0-9]{3}|[01][0-9]{4})' . '[0-9]{3}$ /'; else if ($uf=='RJ')$regex = '/^[2][0-8][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='MS')$regex = '/^[7][9][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='MG')$regex = '/^[3][0-9]{4}' . '[0-9]{3}$ /'; else if ($uf=='MT')$regex = '/^[7][8][8][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='AC')$regex = '/^[6][9]{2}[0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='AL')$regex = '/^[5][7][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='AM')$regex = '/^[6][9][0-8][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='AP')$regex = '/^[6][89][9][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='BA')$regex = '/^[4][0-8][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='CE')$regex = '/^[6][0-3][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='DF')$regex = '/^[7][0-3][0-6][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='ES')$regex = '/^[2][9][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='GO')$regex = '/^[7][3-6][7-9][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='MA')$regex = '/^[6][5][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='PA')$regex = '/^[6][6-8][0-8][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='PB')$regex = '/^[5][8][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='PE')$regex = '/^[5][0-6][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='PI')$regex = '/^[6][4][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='PR')$regex = '/^[8][0-7][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='RN')$regex = '/^[5][9][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='RO')$regex = '/^[7][8][9][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='RR')$regex = '/^[6][9][3][0-9]{2}' . '[0-9]{3}$ /'; else if ($uf=='RS')$regex = '/^[9][0-9]{4}' . '[0-9]{3}$ /'; else if ($uf=='SC')$regex = '/^[8][89][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='SE')$regex = '/^[4][9][0-9]{3}' . '[0-9]{3}$ /'; else if ($uf=='TO')$regex = '/^[7][7][0-9]{3}' . '[0-9]{3}$ /'; else return false; if(!preg_match($regex,$cep)) return false; return true; } /** - Valida um e-mail especificado
- @param string $email
- @return bool / function email ($email) { $email=trim (strtolower($email)); if (strlen($email)<6) return false; if (!preg_match('/^[a-z0-9]+([._-][a-z0-9]+)@[a-z0-9_-]+(.[a-z0-9]+){0,4}.[a-z0-9]{1,4}$/',$email)) return false; $domain=end (explode ('@',$email)); //if (!gethostbynamel ($domain)) return false; return true; } /**
- Valida um cpf ou cnpj, dependendo da quantidade de caracteres numericos que a string contiver
- O cpf ou cnpj podem ser passados com os pontos separadores ou barras
- @param string $value
- @return array / function cpfcnpj ($value) { $value=self::_toNumber($value); if ( in_array( strlen($value), array (10,11) ) ) return self::CPF($value,true); if ( in_array( strlen($value), array (14) ) ) return self::CNPJ($value,true); return array ('CPF/CNPJ'); } /*
- CPF, pode ser passado com separadores
- @param string $value
- @param bool $returnArray
- @return bool|array / function CPF ($value,$returnArray=false) { $value=self::_toNumber($value); if ( !in_array( strlen($value), array (10,11) ) ) return ($returnArray?array('cpf',false):false); if (str_repeat($value{1},strlen($value))==$value) return ($returnArray?array('cpf',false):false); $value=str_pad($value,11,0,STR_PAD_LEFT); if ( in_array($value,array ('12345678909','01234567890','00123456797'))) return ($returnArray?array('cpf',false):false); $soma=self::_soma($value,10); $soma=$soma; $resultado1=($soma==0 || $soma==1)?0:11-$soma; if ($resultado1!=$value{9}) return ($returnArray?array('cpf',false):false); $soma=self::_soma($value,11); $soma=$soma; $resultado2=($soma==0 || $soma==1)?0:11-$soma; return (($resultado2==$value{10})?($returnArray?array('cpf',true):true):($returnArray?array('cpf'):false)); } /*
- CNPJ, pode ser passado com separadores
- @param string $value
- @param bool $returnArray
- @return bool|array */ function CNPJ ($value,$returnArray=false) { $value=self::_toNumber($value); if ( !in_array( strlen($value), array (14) ) ) return ($returnArray?array('cnpj',false):false); if (str_repeat($value{1},strlen($value))==$value) return ($returnArray?array('cnpj',false):false); if ( in_array($value,array ('12345678901230','01234567890107'))) return ($returnArray?array('cnpj',false):false); $soma=self::_soma($value,5)+self::_soma(substr($value,4),9); $soma=$soma; $resultado1=($soma==0 || $soma==1)?0:11-$soma; if ($resultado1!=$value{12}) return ($returnArray?array('cnpj',false):false); $soma=self::_soma($value,6)+self::_soma(substr($value,5),9); $soma=$soma; $resultado1=($soma==0 || $soma==1)?0:11-$soma; return (($resultado1==$value{13})?($returnArray?array('cnpj',true):true):($returnArray?array('cnpj'):false)); } function senha ($senha,$senha2=null,$minChr=5,$noSpaces=true) { if ( ($noSpaces) && ( strpos ($senha,chr(32)) ) ) return false; if (strlen ($senha)<$minChr) return false; if (($senha2) && ($senha!=$senha2)) return false; return true; } } ?> [/code]