Вход Регистрация
Файл: vendor/fakerphp/faker/src/Faker/Provider/pt_BR/check_digit.php
Строк: 31
<?php

namespace FakerProviderpt_BR;

/**
 * Calculates one MOD 11 check digit based on customary Brazilian algorithms.
 *
 * @see http://en.wikipedia.org/wiki/Check_digit
 * @see http://pt.wikipedia.org/wiki/CNPJ#Algoritmo_de_Valida.C3.A7.C3.A3o
 * @see http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas#Validation
 *
 * @param int|string $numbers Numbers on which generate the check digit
 *
 * @return int
 */
function check_digit($numbers)
{
    
$numbers = (string) $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 $i 1;
        }
        
$verifier += $numbers[$length $i] * $multiplier;
    }

    
$verifier 11 - ($verifier 11);

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

    return 
$verifier;
}
Онлайн: 1
Реклама