>  기사  >  백엔드 개발  >  PHP 확인 신용카드 번호 예시

PHP 확인 신용카드 번호 예시

*文
*文원래의
2017-12-26 11:13:241549검색

PHP는 신용카드 번호에 문제가 있는지 어떻게 확인하나요? 본 글에서는 신용카드 번호가 유효한지 확인하기 위한 Luhn 알고리즘의 PHP 구현을 주로 소개하고, PHP에서의 Luhn 알고리즘 구현과 관련 응용 기술을 예제를 통해 분석합니다. 그것이 모두에게 도움이 되기를 바랍니다.

구체적인 구현 방법은 다음과 같습니다.


$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;
}


실행 결과


49927398716 is valid
49927398717 is not valid
1234567812345678 is not valid
1234567812345670 is valid


다음은 좀 더 간결한 코드입니다.

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";

출력 결과는 다음과 같습니다.


49927398716 is valid
49927398717 is not valid
1234567812345678 is not valid
1234567812345670 is valid

관련 권장사항:

php IP가 합법적인지 확인하는 정규식 코드

php 방문자가 검색 엔진 스파이더인지 확인하는 함수 코드

PHP 클라이언트가 IOS인지 Android인지 확인하세요

위 내용은 PHP 확인 신용카드 번호 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.