Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Função para calcular Dígito Verificador do CNPJ Fiz uma função que calcula os dígitos verificador do CPF e informa. Agora preciso de uma função que faça o mesmo para CNPJ? Alguém tem alguma? Alguma dica?...
PP
Função para calcular Dígito Verificador do CNPJ  
Fechado
Fiz uma função que calcula os dígitos verificador do CPF e informa. Agora preciso de uma função que faça o mesmo para CNPJ?

Alguém tem alguma?

Alguma dica?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


PD

ve se isso pode ajudar

  1. <?php
  2.     function isCnpjValid($cnpj)
  3. {
  4. //Etapa 1: Cria um array com apenas os digitos numéricos, isso permite receber o cnpj em diferentes formatos como "00.000.000/0000-00", "00000000000000", "00 000 000 0000 00" etc...
  5. $j=0;
  6. for($i=0$i<(strlen($cnpj)); $i++)
  7. {
  8. if(is_numeric($cnpj[$i]))
  9. {
  10. $num[$j]=$cnpj[$i];
  11. $j++;
  12. }
  13. }
  14. //Etapa 2: Conta os dígitos, um Cnpj válido possui 14 dígitos numéricos.
  15. if(count($num)!=14)
  16. {
  17. $isCnpjValid=false;
  18. }
  19. //Etapa 3: O número 00000000000 embora não seja um cnpj real resultaria um cnpj válido após o calculo dos dígitos verificares e por isso precisa ser filtradas nesta etapa.
  20. if ($num[0]==&& $num[1]==&& $num[2]==&& $num[3]==&& $num[4]==&& $num[5]==&& $num[6]==&& $num[7]==&& $num[8]==&& $num[9]==&& $num[10]==&& $num[11]==0)
  21. {
  22. $isCnpjValid=false;
  23. }
  24. //Etapa 4: Calcula e compara o primeiro dígito verificador.
  25. else
  26. {
  27. $j=5;
  28. for($i=0$i<4$i++)
  29. {
  30. $multiplica[$i]=$num[$i]*$j;
  31. $j--;
  32. }
  33. $soma array_sum($multiplica);
  34. $j=9;
  35. for($i=4$i<12$i++)
  36. {
  37. $multiplica[$i]=$num[$i]*$j;
  38. $j--;
  39. }
  40. $soma array_sum($multiplica);    
  41. $resto $soma%11;    
  42. if($resto<2)
  43. {
  44. $dg=0;
  45. }
  46. else
  47. {
  48. $dg=11-$resto;
  49. }
  50. if($dg!=$num[12])
  51. {
  52. $isCnpjValid=false;
  53. }
  54. }
  55. //Etapa 5: Calcula e compara o segundo dígito verificador.
  56. if(!isset($isCnpjValid))
  57. {
  58. $j=6;
  59. for($i=0$i<5$i++)
  60. {
  61. $multiplica[$i]=$num[$i]*$j;
  62. $j--;
  63. }
  64. $soma array_sum($multiplica);
  65. $j=9;
  66. for($i=5$i<13$i++)
  67. {
  68. $multiplica[$i]=$num[$i]*$j;
  69. $j--;
  70. }
  71. $soma array_sum($multiplica);    
  72. $resto $soma%11;    
  73. if($resto<2)
  74. {
  75. $dg=0;
  76. }
  77. else
  78. {
  79. $dg=11-$resto;
  80. }
  81. if($dg!=$num[13])
  82. {
  83. $isCnpjValid=false;
  84. }
  85. else
  86. {
  87. $isCnpjValid=true;
  88. }
  89. }
  90. //Trecho usado para depurar erros.
  91. /*
  92. if($isCnpjValid==true)
  93. {
  94. echo "<p><font color="GREEN">Cnpj é Válido</font></p>";
  95. }
  96. if($isCnpjValid==false)
  97. {
  98. echo "<p><font color="RED">Cnpj Inválido</font></p>";
  99. }
  100. */
  101. //Etapa 6: Retorna o Resultado em um valor booleano.
  102. return $isCnpjValid;    
  103. }
  104. ?>