php 验证信用卡卡号的简单示例

前端之家收集整理的这篇文章主要介绍了php 验证信用卡卡号的简单示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP验证信用卡卡号代码感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!
PHP验证信用卡卡号代码,可以用来验证普通信用卡,visa,master等信用卡,采用了Luhn算法
  1. /**
  2. * PHP验证信用卡卡号代码
  3. *
  4. * @param
  5. * @arrange 512-笔记网: www.www.jb51.cc
  6. **/
  7. // This function will take a credit card number and check to make sure it
  8. // contains the right amount of digits and uses the Luhn Algorithm to
  9. // weed out made up numbers
  10. function validateCreditcard_number($credit_card_number)
  11. {
  12. // Get the first digit
  13. $firstnumber = substr($credit_card_number,1);
  14. // Make sure it is the correct amount of digits. Account for dashes being present.
  15. switch ($firstnumber)
  16. {
  17. case 3:
  18. if (!preg_match('/^3\d{3}[ \-]?\d{6}[ \-]?\d{5}$/',$credit_card_number))
  19. {
  20. return 'This is not a valid American Express card number';
  21. }
  22. break;
  23. case 4:
  24. if (!preg_match('/^4\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/',$credit_card_number))
  25. {
  26. return 'This is not a valid Visa card number';
  27. }
  28. break;
  29. case 5:
  30. if (!preg_match('/^5\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/',$credit_card_number))
  31. {
  32. return 'This is not a valid MasterCard card number';
  33. }
  34. break;
  35. case 6:
  36. if (!preg_match('/^6011[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/',$credit_card_number))
  37. {
  38. return 'This is not a valid Discover card number';
  39. }
  40. break;
  41. default:
  42. return 'This is not a valid credit card number';
  43. }
  44. // Here's where we use the Luhn Algorithm
  45. $credit_card_number = str_replace('-','',$credit_card_number);
  46. $map = array(0,1,2,3,4,5,6,7,8,9,9);
  47. $sum = 0;
  48. $last = strlen($credit_card_number) - 1;
  49. for ($i = 0; $i <= $last; $i++)
  50. {
  51. $sum += $map[$credit_card_number[$last - $i] + ($i & 1) * 10];
  52. }
  53. if ($sum % 10 != 0)
  54. {
  55. return 'This is not a valid credit card number';
  56. }
  57. // If we made it this far the credit card number is in a valid format
  58. return 'This is a valid credit card number';
  59. }
  60. echo validateCreditcard_number('4111-1111-1111-1111'); // This is a valid credit card number
  61. echo validateCreditcard_number('4111-1111-1111-1112'); // This is not a valid credit card number
  62. echo validateCreditcard_number('5558-545f-1234'); // This is not a valid MasterCard card number
  63. echo validateCreditcard_number('9876-5432-1012-3456'); // This is not a valid credit card number
  64. /*** 来自编程之家 jb51.cc(jb51.cc) ***/

 

猜你在找的PHP相关文章