脚本宝典收集整理的这篇文章主要介绍了php实现用于验证所有类型的信用卡类,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了PHP实现用于验证所有类型的信用卡类。分享给大家供大家参考。具体如下:
这个PHP类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同类型的信用卡进行了针对性的识别。
代码接受一个信用卡号码和有效日期,如果两者都有效,则返回TRUE,否则返回FALSE。
本插件接受以下参数:
$number 表示信用卡号码的一个字符串
$expiry 信用卡有效日期,采用07/12或0712这样的格式
<
PRe class="
brush:
PHp;">
<>
PHP
// Plug
-in 32: Validate C
redIT Card
// This is an executable ex
ample with additional code supplied
// To o
BTain just the plug-ins please click on the Download link
$card = "4567 1234 5678 9101";
$exp = "06/11";
echo "Validating: $card : $exp
";
$result = PI
PHP_ValidateCC($card,$exp);
if ($result != FALSE) echo "Card Validated";
else echo "Card did not validate";
function PI
PHP_ValidateCC($number,$expiry)
{
// Plug-in 32: Validate Credit Card
//
// This plug-in accepts a credit card number and
// an expiry date and returns TRUE or FALSE,// de
PEnding on whether the details pass date
// and checksum validation. The
arguments
required
// are:
//
// $number: Credit Card Number
// $expiry: Expiry date in the form:
// 07/12 or 0712 (for July,2012)
$number = preg_replace('/[^\d]/','',$number);
$expiry = preg_replace('/[^\d]/',$expiry);
$left = s
ubstr($number,4);
$cclen =
strlen($number);
$chksum = 0;
// Diners Club
if (($left >= 3000) && ($left <= 3059)="" ||="" ($left="">=
3600) && ($left <= 3699)="" ||="" ($left="">= 3800) && ($left <= 3889))="" if="" ($cclen="" !="14)" return="" false;="" jcb="" if="" (($left="">= 3088) && ($left <= 3094)="" ||="" ($left="">= 3096) && ($left <= 3102)="" ||="" ($left="">= 3112) && ($left <= 3120)="" ||="" ($left="">= 3158) && ($left <= 3159)="" ||="" ($left="">= 3337) && ($left <= 3349)="" ||="" ($left="">= 3528) && ($left <= 3589))="" if="" ($cclen="" !="16)" return="" false;="" american="" express="" elseif="" (($left="">= 3400) && ($left <= 3499)="" ||="" ($left="">= 3700) && ($left <= 3799))="" if="" ($cclen="" !="15)" return="" false;="" carte="" blanche="" elseif="" (($left="">= 3890) && ($left <= 3899))="" if="" ($cclen="" !="14)" return="" false;="" visa="" elseif="" (($left="">= 4000) && ($left <= 4999))="" if="" ($cclen="" !="13" &&="" $cclen="" !="16)" return="" false;="" mastercard="" elseif="" (($left="">= 5100) && ($left <= 5599))="" if="" ($cclen="" !="16)" return="" false;="" australian="" bankcard="" elseif="" ($left="=" 5610)="" if="" ($cclen="" !="16)" return="" false;="" discover="" elseif="" ($left="=" 6011)="" if="" ($cclen="" !="16)" return="" false;="">=>
Nown
else return FALSE;
for ($j = 1 - ($cclen % 2); $j < $cclen;="" $j="" +="2)" $chksum="" +="substr($number,$j,1);" for="" ($j="$cclen" %="" 2;="" $j="">< $cclen;="" $j="" +="2)" {="" $d="substr($number,1)" *="" 2;="" $chksum="" +="$d">< 10="" $d="" :="" $d="" -="" 9;="" }="" if="" ($chksum="" %="" 10="" !="0)" return="" false;="" if="" (mktime(0,substr($expiry,2),date("t"),2,2))="">< time())="" return="" false;="" return="" true;="" }="">=>=>=>=>=>=>=>=>=>=>=>=>=>
脚本宝典总结
以上是脚本宝典为你收集整理的php实现用于验证所有类型的信用卡类全部内容,希望文章能够帮你解决php实现用于验证所有类型的信用卡类所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。