php 验证信用卡卡号的解决办法
内容摘要
这篇文章主要为大家详细介绍了php 验证信用卡卡号的简单示例,具有一定的参考价值,可以用来参考一下。
对php验证信用卡卡号代码对此感兴趣的朋友,看看idc笔记做的技术笔记!php
对php验证信用卡卡号代码对此感兴趣的朋友,看看idc笔记做的技术笔记!php
文章正文
这篇文章主要为大家详细介绍了php 验证信用卡卡号的简单示例,具有一定的参考价值,可以用来参考一下。
对php验证信用卡卡号代码对此感兴趣的朋友,看看idc笔记做的技术笔记!php验证信用卡卡号代码,可以用来验证普通信用卡,visa,master等信用卡,采用了Luhn算法
/**
* php验证信用卡卡号代码
*
* @param
* @arrange 512-笔记网: www.512PiC.com
**/
// This function will take a credit card number and check to make sure it
// contains the right amount of digits and uses the Luhn Algorithm to
// weed out made up numbers
function validateCreditcard_number($credit_card_number)
{
// Get the first digit
$firstnumber = substr($credit_card_number, 0, 1);
// Make sure it is the correct amount of digits. Account for dashes being present.
switch ($firstnumber)
{
case 3:
if (!preg_match('/^3\d{3}[ \-]?\d{6}[ \-]?\d{5}$/', $credit_card_number))
{
return 'This is not a valid American Express card number';
}
break;
case 4:
if (!preg_match('/^4\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))
{
return 'This is not a valid Visa card number';
}
break;
case 5:
if (!preg_match('/^5\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))
{
return 'This is not a valid MasterCard card number';
}
break;
case 6:
if (!preg_match('/^6011[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))
{
return 'This is not a valid Discover card number';
}
break;
default:
return 'This is not a valid credit card number';
}
// Here's where we use the Luhn Algorithm
$credit_card_number = str_replace('-', '', $credit_card_number);
$map = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 2, 4, 6, 8, 1, 3, 5, 7, 9);
$sum = 0;
$last = strlen($credit_card_number) - 1;
for ($i = 0; $i <= $last; $i++)
{
$sum += $map[$credit_card_number[$last - $i] + ($i & 1) * 10];
}
if ($sum % 10 != 0)
{
return 'This is not a valid credit card number';
}
// If we made it this far the credit card number is in a valid format
return 'This is a valid credit card number';
}
echo validateCreditcard_number('4111-1111-1111-1111'); // This is a valid credit card number
echo validateCreditcard_number('4111-1111-1111-1112'); // This is not a valid credit card number
echo validateCreditcard_number('5558-545f-1234'); // This is not a valid MasterCard card number
echo validateCreditcard_number('9876-5432-1012-3456'); // This is not a valid credit card number
/*** 来自php教程(www.idcnote.com) ***/
注:关于php 验证信用卡卡号的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释