modulo_11

################################################# FUNO DO MDULO 11 RETIRADA DO PHPBOLETO.

Description

modulo_11( $num, (int) $base = 9, (int) $r = 0 ); 

MODIFIQUEI ALGUMAS COISAS...

ESTA FUNO PEGA O DGITO VERIFICADOR:

NOSSONUMERO AGENCIA CONTA CAMPO 4 DA LINHA DIGITVEL #################################################

Parameters (3)

0. $num
The num.
1. $base — Optional. (int) => 9
The base.
2. $r — Optional. (int)
The r.

Usage

  1. if ( !function_exists( 'modulo_11' ) ) { 
  2. require_once ABSPATH . PLUGINDIR . 'woocommerce-boleto/includes/banks/bancoob/functions.php'; 
  3.  
  4. // The num. 
  5. $num = null; 
  6.  
  7. // The base. 
  8. $base = 9; 
  9.  
  10. // The r. 
  11. $r = -1; 
  12.  
  13. // NOTICE! Understand what this does before running. 
  14. $result = modulo_11($num, $base, $r); 
  15.  

Defined (12)

The function is defined in the following location(s).

/includes/banks/bancoob/functions.php  
  1. function modulo_11($num, $base=9, $r=0) { 
  2. $soma = 0; 
  3. $fator = 2; 
  4. for ($i = strlen($num); $i > 0; $i--) { 
  5. $numeros[$i] = substr($num, $i-1, 1); 
  6. $parcial[$i] = $numeros[$i] * $fator; 
  7. $soma += $parcial[$i]; 
  8. if ($fator == $base) { 
  9. $fator = 1; 
  10. $fator++; 
  11. if ($r == 0) { 
  12. $soma *= 10; 
  13. $digito = $soma % 11; 
  14.  
  15. //corrigido 
  16. if ($digito == 10) { 
  17. $digito = "X"; 
  18.  
  19. /** 
  20. alterado por mim, Daniel Schultz 
  21.   
  22. Vamos explicar: 
  23.   
  24. O mdulo 11 s gera os digitos verificadores do nossonumero,  
  25. agencia, conta e digito verificador com codigo de barras (aquele que fica sozinho e triste na linha digitvel) 
  26. s que foi um rolo...pq ele nao podia resultar em 0, e o pessoal do phpboleto se esqueceu disso... 
  27.   
  28. No BB, os dgitos verificadores podem ser X ou 0 (zero) para agencia, conta e nosso numero,  
  29. mas nunca pode ser X ou 0 (zero) para a linha digitvel, justamente por ser totalmente num*rica. 
  30.   
  31. Quando passamos os dados para a funo, fica assim: 
  32.   
  33. Agencia = sempre 4 digitos 
  34. Conta = at 8 dgitos 
  35. Nosso nmero = de 1 a 17 digitos 
  36.   
  37. A unica varivel que passa 17 digitos a da linha digitada, justamente por ter 43 caracteres 
  38.   
  39. Entao vamos definir ai embaixo o seguinte... 
  40.   
  41. se (strlen($num) == 43) { no deixar dar digito X ou 0 } 
  42. */ 
  43.  
  44. if (strlen($num) == "43") { 
  45. //ento estamos checando a linha digitvel 
  46. if ($digito == "0" or $digito == "X" or $digito > 9) { 
  47. $digito = 1; 
  48. return $digito; 
  49. elseif ($r == 1) { 
  50. $resto = $soma % 11; 
  51. return $resto; 
/includes/banks/bb/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. $soma = 0; 
  3. $fator = 2; 
  4. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  5. $numeros[$i] = substr( $num, $i-1, 1 ); 
  6. $parcial[$i] = $numeros[$i] * $fator; 
  7. $soma += $parcial[$i]; 
  8. if ( $fator == $base ) { 
  9. $fator = 1; 
  10. $fator++; 
  11. if ( $r == 0 ) { 
  12. $soma *= 10; 
  13. $digito = $soma % 11; 
  14.  
  15. //corrigido 
  16. if ( $digito == 10 ) { 
  17. $digito = "X"; 
  18.  
  19. /** 
  20. alterado por mim, Daniel Schultz 
  21.   
  22. Vamos explicar: 
  23.   
  24. O mdulo 11 s gera os digitos verificadores do nossonumero,  
  25. agencia, conta e digito verificador com codigo de barras (aquele que fica sozinho e triste na linha digitvel) 
  26. s que foi um rolo...pq ele nao podia resultar em 0, e o pessoal do phpboleto se esqueceu disso... 
  27.   
  28. No BB, os dgitos verificadores podem ser X ou 0 (zero) para agencia, conta e nosso numero,  
  29. mas nunca pode ser X ou 0 (zero) para a linha digitvel, justamente por ser totalmente numrica. 
  30.   
  31. Quando passamos os dados para a funo, fica assim: 
  32.   
  33. Agencia = sempre 4 digitos 
  34. Conta = at 8 dgitos 
  35. Nosso nmero = de 1 a 17 digitos 
  36.   
  37. A unica varivel que passa 17 digitos a da linha digitada, justamente por ter 43 caracteres 
  38.   
  39. Entao vamos definir ai embaixo o seguinte... 
  40.   
  41. se (strlen($num) == 43) { no deixar dar digito X ou 0 } 
  42. */ 
  43.  
  44. if ( strlen( $num ) == "43" ) { 
  45. //ento estamos checando a linha digitvel 
  46. if ( $digito == "0" or $digito == "X" or $digito > 9 ) { 
  47. $digito = 1; 
  48. return $digito; 
  49. elseif ( $r == 1 ) { 
  50. $resto = $soma % 11; 
  51. return $resto; 
/includes/banks/bradesco/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/cef/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/cef_sigcb/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/cef_sinco/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/hsbc/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/itau/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Fun??o: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string num?rica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sa?da: 
  14. * Retorna o Digito verificador. 
  15. * Observa??es: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de c?digo pr? existente. 
  17. * - Assume-se que a verifica??o do formato das vari?veis de entrada ? feita antes da execu??o deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/nossacaixa/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/real/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/santander/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto; 
/includes/banks/unibanco/functions.php  
  1. function modulo_11( $num, $base=9, $r=0 ) { 
  2. /** 
  3. * Autor: 
  4. * Pablo Costa <pablo@users.sourceforge.net> 
  5. * Funo: 
  6. * Calculo do Modulo 11 para geracao do digito verificador 
  7. * de boletos bancarios conforme documentos obtidos 
  8. * da Febraban - www.febraban.org.br 
  9. * Entrada: 
  10. * $num: string numrica para a qual se deseja calcularo digito verificador; 
  11. * $base: valor maximo de multiplicacao [2-$base] 
  12. * $r: quando especificado um devolve somente o resto 
  13. * Sada: 
  14. * Retorna o Digito verificador. 
  15. * Observaes: 
  16. * - Script desenvolvido sem nenhum reaproveitamento de cdigo pr existente. 
  17. * - Assume-se que a verificao do formato das variveis de entrada feita antes da execuo deste script. 
  18. */ 
  19.  
  20. $soma = 0; 
  21. $fator = 2; 
  22.  
  23. /** Separacao dos numeros */ 
  24. for ( $i = strlen( $num ); $i > 0; $i-- ) { 
  25. // pega cada numero isoladamente 
  26. $numeros[$i] = substr( $num, $i-1, 1 ); 
  27. // Efetua multiplicacao do numero pelo falor 
  28. $parcial[$i] = $numeros[$i] * $fator; 
  29. // Soma dos digitos 
  30. $soma += $parcial[$i]; 
  31. if ( $fator == $base ) { 
  32. // restaura fator de multiplicacao para 2 
  33. $fator = 1; 
  34. $fator++; 
  35.  
  36. /** Calculo do modulo 11 */ 
  37. if ( $r == 0 ) { 
  38. $soma *= 10; 
  39. $digito = $soma % 11; 
  40. if ( $digito == 10 ) { 
  41. $digito = 0; 
  42. return $digito; 
  43. } elseif ( $r == 1 ) { 
  44. $resto = $soma % 11; 
  45. return $resto;