<?php | |
function validaCPF($cpf) { | |
// Extrai somente os números | |
$cpf = preg_replace( '/[^0-9]/is', '', $cpf ); | |
// Verifica se foi informado todos os digitos corretamente | |
if (strlen($cpf) != 11) { | |
return false; | |
} | |
// Verifica se foi informada uma sequência de digitos repetidos. Ex: 111.111.111-11 | |
if (preg_match('/(\d)\1{10}/', $cpf)) { | |
return false; | |
} | |
// Faz o calculo para validar o CPF | |
for ($t = 9; $t < 11; $t++) { | |
for ($d = 0, $c = 0; $c < $t; $c++) { | |
$d += $cpf[$c] * (($t + 1) - $c); | |
} | |
$d = ((10 * $d) % 11) % 10; | |
if ($cpf[$c] != $d) { | |
return false; | |
} | |
} | |
return true; | |
} |
Valew! Código top, usei em meu projeto LARAVEL e funcionou perfeitamente. Parabéns!!!!
eu faço assim
echo $cpf = formatar_cpf_cnpj('039.943.865-35');
function formatar_cpf_cnpj($doc) {
$doc = preg_replace("/[^0-9]/", "", $doc);
$qtd = strlen($doc);
if($qtd >= 11) {
if($qtd === 11 ) {
$docFormatado = substr($doc, 0, 3) . '.' .
substr($doc, 3, 3) . '.' .
substr($doc, 6, 3) . '.' .
substr($doc, 9, 2);
} else {
$docFormatado = substr($doc, 0, 2) . '.' .
substr($doc, 2, 3) . '.' .
substr($doc, 5, 3) . '/' .
substr($doc, 8, 4) . '-' .
substr($doc, -2);
}
return $docFormatado;
} else {
return 'Documento invalido';
}
}
@MauricioSarmento a ideia do script é verificar se o CPF é válido. E não apenas formatar.
Off: Chat GPT anda lendo teu git, pedi uma função em php para validar CPF e ele me mostrou praticamente o mesmo código! Seloko!
Parabéns, man!
Tão boa que o Copilot já mapeou ela
@indianabytes eu fui verificar e realmente ele mostra essa função no ChatGPT.
@juniormartinxo no caso do Copilot ele aprende com os códigos do Github.
Isso significa que tem muito código que ainda usa o formato antigo, sem as sugestões do @jonasbraga.
@_rafaelneri valeu meu jovem, sucesso e forte abraço!
Ele verifica a existência ou não do cpf?
Isso não é possivel fazer.
@sr-adulis e demais:
Para a utilização no Front, eu recomendo o uso de uma Lib chamada js-brasil com validações brasileiras.
Segue abaixo um exemplo simples com JQuery.
Para testar o código acima: https://jsfiddle.net/d6ncju1f/