ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、クレジット カード番号が有効かどうかを検証する Luhn アルゴリズムを実装します_PHP チュートリアル

PHP は、クレジット カード番号が有効かどうかを検証する Luhn アルゴリズムを実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:00:34926ブラウズ

PHP は、クレジット カード番号が有効かどうかを検証する Luhn アルゴリズムを実装します

この記事では、Luhn アルゴリズムを通じてクレジット カード番号が有効かどうかを検証する PHP 実装を主に紹介し、PHP での Luhn アルゴリズムの実装を分析します。および関連するアプリケーションスキルには特定の参照ポイントがあり、必要な友人はそれを参照できます

この記事の例では、PHP が Luhn アルゴリズムを実装してクレジット カード番号が有効かどうかを検証する方法を説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$numbers = "49927398716 49927398717 1234567812345678 1234567812345670";

foreach (split(' ', $numbers) as $n)

echo "$n は ", luhnTest($n) ? '有効' : '無効', '
';

関数 luhnTest($num) {

$len = strlen($num);

for ($i = $len-1; $i >= 0; $i--) {

$ord = ord($num[$i]);

if (($len - 1) & $i) {

$sum += $ord;

} 他 {

$sum += $ord / 5 + (2 * $ord) % 10;

}

}

return $sum % 10 == 0;

}

実行結果

?

1

2

3

4

49927398716は有効です

49927398717 は無効です

1234567812345678 は無効です

1234567812345670は有効です

より簡潔なコードは次のとおりです:

コードは次のとおりです:

関数 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 は ", luhn_test($n) ? '有効' : '無効', "
n";

出力結果は以下の通りです

?

1

2

3

4

49927398716は有効です

49927398717 は無効です

1234567812345678 は無効です

1234567812345670は有効です

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/973138.html技術記事 PHP は、クレジット カード番号が有効かどうかを検証するための Luhn アルゴリズムを実装します。この記事では、Luhn アルゴリズムを通じてクレジット カード番号が有効かどうかを検証するための PHP 実装と、Luhn アルゴリズムの PHP 実装の分析例を紹介します。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。