Fabrice Pigou

Algoritme de Luhn

function isLuhnNum($num) {
	$total = 0;
	$aNum = str_split(strrev($num));	// Transforme en "array" et inverse les chiffres
	foreach ($aNum as $key => $value) {	
		if ($key %2 == 1) {	// pour chaque $key impair
			if (($value * 2) > 9) $total += ($value * 2) - 9;	// Il est superieur à 9 on lui enlève 9
			else $total += ($value * 2);	// On ajoute au total
		} else $total += $value;}
	return $total % 10;	// le total doit être un multiple de 10
}
La fonction retourne 0 si le numéros est valide