<?PHP
/********************************************/
//@@L Name = RIB
//@@L Info = Gestion du RIB
//@@L Ver = 1.0
//@@L Auteur = BOBAK
//@@L Update = 2005-12-02
//@@L Creat = 2005-12-02
/********************************************/
//------------------------------------------------
//@@C RIB (Relevé d'Identité Bancaire)
//@@C Ver : 1.0
//------------------------------------------------
Class RIB
{
//*************************************************
//@@M Calcul de la clef
//@@M Ver : 1.0
//*************************************************
function clef($RIB)
{
$Out=FALSE;
$Coef=array(62,34,3);
if (strlen($RIB)==23)
{
//separation du rib en 3 groupes de 7 + 1 groupe de 2.
//multiplication de chaque groupe par les coef du tableau
for ($i=0, $s=0; $i<3; $i++)
{
$Code=substr($RIB,7*$i,7);
$s+=(0+$Code)*$Coef[$i];
}
//soustraction du modulo 97 de $s à 97 pour obtenir la clé RIB
$Out=97-($s%97);
}
return $Out;
}
//*************************************************
//@@M Netoyage du RIB
//@@M Ver : 1.0
//*************************************************
function clean($RIB1,$RIB2='',$RIB3='',$RIB4='')
{
$RIB=$RIB1.$RIB2.$RIB3.$RIB4;
$RIB=str_replace("-","",$RIB);
$RIB=str_replace(" ","",$RIB);
$RIB=str_replace(".","",$RIB);
$RIB=strtolower($RIB);
//on remplca les eventuelles lettres par des chiffres.
$RIB=strtr($RIB,"abcdefghijklmnopqrstuvwxyz",
"12345678912345678923456789");
return $RIB;
}
//*************************************************
//@@M Test du RIB
//@@M Ver : 1.0
//*************************************************
function Test($RIB1,$RIB2='',$RIB3='',$RIB4='')
{
$RIB=$this->clean($RIB1,$RIB2,$RIB3,$RIB4); //Netoyage
$Clef=SubStr($RIB,-2); //Trouve la clef (les 2 derniers)
//Test si la clef est ok
if ($Clef==$this->clef($RIB))
{return TRUE;}
else
{return FALSE;}
}
}
?>