note 17751 added to ref.strings
| From: | surak at surak dot eti dot br | Date: | Fri, 21 Dec 2001 19:23:01 +0000 |
| Subject: | note 17751 added to ref.strings | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-23769@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;
}
--
http://www.php.net/manual/en/ref.strings.php
http://master.php.net/manage/user-notes.php?action=edit+17751
http://master.php.net/manage/user-notes.php?action=delete+17751
http://master.php.net/manage/user-notes.php?action=reject+17751