PHP Classes

File: system/dependencies/fzaninotto/faker/src/Provider/pt_BR/check_digit.php

Recommend this page to a friend!
  Classes of Dimitri Sitchet   dFramework   system/dependencies/fzaninotto/faker/src/Provider/pt_BR/check_digit.php   Download  
File: system/dependencies/fzaninotto/faker/src/Provider/pt_BR/check_digit.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: dFramework
Framework to build PHP applications
Author: By
Last change:
Date: 4 years ago
Size: 923 bytes
 

Contents

Class file image Download
<?php

namespace Faker\Provider\pt_BR;

/**
 * Calculates one MOD 11 check digit based on customary Brazilian algorithms.
 * @link http://en.wikipedia.org/wiki/Check_digit
 * @link http://pt.wikipedia.org/wiki/CNPJ#Algoritmo_de_Valida.C3.A7.C3.A3o
 * @link http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas#Validation
 *
 * @param string|integer $numbers Numbers on which generate the check digit
 * @return integer
 */
function check_digit($numbers)
{
   
$length = strlen($numbers);
   
$second_algorithm = $length >= 12;
   
$verifier = 0;

    for (
$i = 1; $i <= $length; $i++) {
        if (!
$second_algorithm) {
           
$multiplier = $i+1;
        } else {
           
$multiplier = ($i >= 9)? $i-7 : $i+1;
        }
       
$verifier += $numbers[$length-$i] * $multiplier;
    }

   
$verifier = 11 - ($verifier % 11);
    if (
$verifier >= 10) {
       
$verifier = 0;
    }

    return
$verifier;
}