Maison  >  Article  >  développement back-end  >  Exemple de numéro de carte de crédit de vérification PHP

Exemple de numéro de carte de crédit de vérification PHP

*文
*文original
2017-12-26 11:13:241549parcourir

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) ? &#39;valid&#39; : &#39;not valid&#39;, &#39;</br>&#39;;
 
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 = &#39;&#39;;
    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(&#39;49927398716&#39;,&#39;49927398717&#39;,&#39;1234567812345678&#39;,&#39;1234567812345670&#39;) as $n)
echo "$n is ", luhn_test($n) ? &#39;valid&#39; : &#39;not valid&#39;, "</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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn