note 17751 deleted from ref.strings by jimw
| From: | jimw@php.net | Date: | Wed, 02 Jan 2002 00:42:48 +0000 |
| Subject: | note 17751 deleted from ref.strings by jimw | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-24053@lists.php.net to get a copy of this message | ||
For brazilian users, these are the functions used to calculate the checksum (digito verificador) for
banking systems.
Ou seja, estas duas funcoes calculam o digito verificador para montagem de boletos bancarios.
function modulo11($numero)
{
//Diz o banco do brasil que esse modulo é utilizado para calcular os campos nosso numero,
//código do cedente e prefixo da agência.
$numero=strrev($numero);
$a=9;
for($i=0;$i<strlen($numero);$i++)
{
if ($a==1) { $a=9;}
$contador=$contador+substr($numero,$i,1)*$a;
$a--;
}
return $contador%11;
}
function modulo10($numero)
{
//Diz o banco do brasil que usa para calcular o dv dos tres primeiros campos da linha
digitavel.
$numero=strrev($numero);
$a=2;
for($i=0;$i<strlen($numero);$i++)
{
$algarismo=substr($numero,$i,1)*$a;
$algarismo2=0;
if(strlen($algarismo)>1)
{
for($j=0;$j<strlen($algarismo);$j++)
{
$algarismo2+=substr($algarismo,$j,1);
}
$algarismo=$algarismo2;
}
$contador=$contador+$algarismo;
if ($a==2) {$a=1;} else {$a=2;}
}
$resultado=ceil($contador/10)*10-$contador;
if($resultado==10) { return 0; } else return $resultado;
}