Après avoir regarder du côté de wikipédia, j’ai pu construire la fonction de Luhn permettant entre autre de vérifier des numéros de carte bancaire.
//Fonction algorithme de Luhn
function isLuhnNum($num)
{
//longueur de la chaine $num
$length = strlen($num);
//resultat de l'addition de tous les chiffres
$tot = 0;
for($i=$length-1;$i>=0;$i--)
{
$digit = substr($num, $i, 1);
if ((($length - $i) % 2) == 0)
{
$digit = $digit*2;
if ($digit>9)
{
$digit = $digit-9;
}
}
$tot += $digit;
}
return (($tot % 10) == 0);
}
Merci à Andras pour sa précision 😉
Laisser un commentaire