Quinta, 18 de Abril de 2024
Busca no site:
Ok
Home
Links
Soluções
Utilitários
Publicações
Curiosidades
Produtos
Notícias
Diversões
Contato
Mapa do Site
Sobre Nós
©2024 CJDinfo®
Detalhe Solução
PHP: Cálculo Dígito Módulo 11 (CPF, CNPJ, RG, PIS, etc)
:
/** * Retorna o(s) numDig Dígitos de Controle Módulo 11 do * dado, limitando o Valor de Multiplicação em limMult, * multiplicando a soma por 10, se indicado: * * Números Comuns: numDig: limMult: x10: * CPF 2 12 true * CNPJ 2 9 true * PIS,C/C,Age 1 9 true * RG SSP-SP 1 9 false * * @version V5.0 - Mai/2001~Out/2015 * @author CJDinfo * @param string $dado String dado contendo o número (sem o DV) * @param int $numDig Número de dígitos a calcular * @param int $limMult Limite de multiplicação * @param boolean $x10 Se true multiplica soma por 10 * @return string Dígitos calculados */ function calculaDigitoMod11($numDado, $numDig, $limMult, $x10){ if(!$x10) $numDig = 1; $dado = $numDado; for($n=1; $n<=$numDig; $n++){ $soma = 0; $mult = 2; for($i=strlen($dado) - 1; $i>=0; $i--){ $soma += $mult * intval(substr($dado, $i ,1)); if(++$mult > $limMult) $mult = 2; } if($x10){ $dig = fmod(fmod(($soma * 10), 11), 10); } else { $dig = fmod($soma, 11); if($dig == 10) $dig = "X"; } $dado .= strval($dig); } return substr($dado, strlen($dado)-$numDig); }
¤ Links Relacionados:
- Veja todas as soluções do site
Retornar