<? function VALIDACPF($cpf) { /* FACICOMP - Faculdade de Ci�ncia da Computa��o de Caratinga Bruno Rodrigues Silva 28/11/2000 brunors@spep.com.br Modificado para funcao por: Clever Anjos (clever@acip.org.br) 10/02/2002 Foi retirado o array auxiliar. Roberth Oliveira Corgosinho (roberthlinux@zipmail.com.br) 14/11/2002 Foi adicionado um laco de repeticao para remover os caracteres nao numericos da string do CPF */ $nulos = array("12345678909","11111111111","22222222222","33333333333", "44444444444","55555555555","66666666666","77777777777", "88888888888","99999999999","00000000000"); /* Retira todos os caracteres que nao sejam 0-9 */ $aux=""; for ($i=1; $i<=strlen($cpf); $i++){ $ch=substr($cpf,$i-1,1); if (ord($ch)>=48 && ord($ch)<=57){ $aux=$aux.$ch; } } $cpf = $aux; /* Retorna falso se o cpf for nulo */ foreach ( $nulos as $nulo ) { if($cpf == $nulo){ return 0; } } /*Calcula o pen�ltimo d�gito verificador*/ $acum=0; for($i=0; $i<9; $i++) { $acum+= $cpf[$i]*(10-$i); } $x=$acum % 11; $acum = ($x>1) ? (11 - $x) : 0; /* Retorna falso se o digito calculado eh diferente do passado na string */ if ($acum != $cpf[9]){ return 0; } /*Calcula o �ltimo d�gito verificador*/ $acum=0; for ($i=0; $i<10; $i++){ $acum+= $cpf[$i]*(11-$i); } $x=$acum % 11; $acum = ($x > 1) ? (11-$x) : 0; /* Retorna falso se o digito calculado eh diferente do passado na string */ if ( $acum != $cpf[10]){ return 0; } /* Retorna verdadeiro se o cpf eh valido */ return 1; } ?>