Advertisement
Guest User

validador cpf php

a guest
Mar 28th, 2015
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.17 KB | None | 0 0
  1.  function valida_cpf($cpf = false) {
  2.  
  3.         function calc_digitos_posicoes($digitos, $posicoes = 10, $soma_digitos = 0) {
  4.             for ($i = 0; $i < strlen($digitos); $i++) {
  5.                 $soma_digitos = $soma_digitos + ( $digitos[$i] * $posicoes );
  6.                 $posicoes--;
  7.             }
  8.             $soma_digitos = $soma_digitos % 11;
  9.             if ($soma_digitos < 2) {
  10.                 $soma_digitos = 0;
  11.             } else {
  12.                 $soma_digitos = 11 - $soma_digitos;
  13.             }
  14.             $cpf = $digitos . $soma_digitos;
  15.             return $cpf;
  16.         }
  17.  
  18.         if (!$cpf) {
  19.             return false;
  20.         }
  21.         $cpf = preg_replace('/[^0-9]/is', '', $cpf);
  22.         if (strlen($cpf) != 11) {
  23.             return false;
  24.         }
  25.         $digitos = substr($cpf, 0, 9);
  26.         $novo_cpf = calc_digitos_posicoes($digitos);
  27.         $novo_cpf = calc_digitos_posicoes($novo_cpf, 11);
  28.         if ($novo_cpf === $cpf) {
  29.             if (str_repeat($cpf, 11) == $digitos) {
  30.                 return false;
  31.             } else {
  32.                 return true;
  33.             }
  34.         } else {
  35.             return false;
  36.         }
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement