EVOLUTION-MANAGER
Edit File: check_digit.php
<?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; }