Location: PHPKode > scripts > RIB class > rib-class/inc_rib.php
<?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;}
}

}
?>
Return current item: RIB class