Comment PHP vérifie-t-il s'il y a un problème avec un numéro de carte de crédit ? Cet article présente principalement l'implémentation PHP de l'algorithme de Luhn pour vérifier si le numéro de carte de crédit est valide, et analyse l'implémentation de l'algorithme de Luhn en PHP et les compétences d'application associées à travers des exemples. J'espère que cela aide tout le monde.
La méthode de mise en œuvre spécifique est la suivante :
$numbers = "49927398716 49927398717 1234567812345678 1234567812345670"; foreach (split(' ', $numbers) as $n) echo "$n is ", luhnTest($n) ? 'valid' : 'not valid', '</br>'; function luhnTest($num) { $len = strlen($num); for ($i = $len-1; $i >= 0; $i--) { $ord = ord($num[$i]); if (($len - 1) & $i) { $sum += $ord; } else { $sum += $ord / 5 + (2 * $ord) % 10; } } return $sum % 10 == 0; }
Résultats en cours
49927398716 is valid 49927398717 is not valid 1234567812345678 is not valid 1234567812345670 is valid
Ce qui suit est un code plus concis :
function luhn_test($num) { $str = ''; foreach( array_reverse( str_split( $num ) ) as $i => $c ) $str .= ($i % 2 ? $c * 2 : $c ); return array_sum( str_split($str) ) % 10 == 0; } foreach (array('49927398716','49927398717','1234567812345678','1234567812345670') as $n) echo "$n is ", luhn_test($n) ? 'valid' : 'not valid', "</br>\n";
Le résultat de sortie est le suivant
49927398716 is valid 49927398717 is not valid 1234567812345678 is not valid 1234567812345670 is valid
Recommandations associées :
code d'expression régulière php pour déterminer si l'adresse IP est légale
code de fonction php pour déterminer si le visiteur est un robot de moteur de recherche
PHP pour déterminer si le le client est IOS ou Android
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!