/** * @return * @param Numerico $numero * @desc Retorna o dígito vefificador com MOD11 */ function mod11($numero) //passar como string { $string = new string(); $retorno = 0; $numero = $string->strzero($numero,50); $mult = "32987654329876543298765432987654329876543298765432"; for ($x = 0; $x < 50; $x ++): { $digito = substr($numero,$x,1) ; $multiplo = substr($mult,$x,1) ; $soma = $digito * $multiplo; $retorno += $soma; } endfor; $retorno += 11; $retorno = (($retorno % 11) <= 1)?(1):(11 - ($retorno % 11)); return $retorno; } class string { /** * @return String * @param Numerico $valor * @param Numerico $dig * @desc Transforma Numerico em String e Completa com Zeros a esquerda */ function strzero($valor,$dig) { $valor = str_replace(".","",$valor); $valor = str_replace(",","",$valor); $tamanho = strlen($valor); $retorno = "" ; if ($tamanho < $dig): { $qtde = $dig-$tamanho; $zeros = "" ; for( $x = 0; $x < $qtde; $x++): { $zeros.="0"; } endfor; $retorno = $zeros.$valor ; } else: { $retorno = $valor ; } endif; } }