当前位置: 首页 > 图文教程 > 网络编程 > PHP > 信用卡效验程序

PHP
使用PHP程序加速探索之缓存输出
用PEAR Date进行日期时间处理
利用APC缓冲PHP脚本来提高服务器性能
使用技巧:如何用PHP来解析XML文档
如何使用PHP来编写一个自动投票程序
使用PHP来完成的一个自动登陆程序
PHP问题总结:PHP优化及高效提速问题小结
如何利用APC缓冲PHP脚本来提高服务器性能
Vim使用技巧:高亮显示PHP代码
PHP5中的三大特色功能
理解PHP及其安全问题的入门知识
PEAR项目发布十个稳定包 PHP共享类库升级
另类代码应用 PHP在安全方面的使用窍门
如何使用动态共享对象模式进行PHP安装
实战技巧:解决网站URL格式过长的问题
PHPer谨记:10个重要的PHP网络信息函数说明
通过案例深入探讨PHP中的内存管理问题
牛刀小小试 PHP5中PDO的简单使用
实用比较:JAVA事件模式下PHP如何实现
PHP5.2.0中allow_url_include的应用和解释

PHP 中的 信用卡效验程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 132 ::
收藏到网摘: n/a

<?php
////////////////////////////////////////////////////
// //
// Credit card validation routine //
// May 15, 2000 //
// By ariso //
// validateCardCode($number[,$cardtype]) //
////////////////////////////////////////////////////

function validateCardCode($cardnumber, $cardtype = 'unknown')
{
//Clean up input
$cardtype = strtolower($cardtype);
$cardnumber = ereg_replace( '[-[:space:]]', '',$cardnumber);
//Do type specific checks
if ($cardtype == 'unknown') {
//Skip type specific checks
}
elseif ($cardtype == 'mastercard'){
if (strlen($cardnumber) != 16 || !ereg( '5[1-5]', $cardnumber)) return 0;
}
elseif ($cardtype == 'visa'){
if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) != '4')
return 0;
}
elseif ($cardtype == 'amex'){
if (strlen($cardnumber) != 15 || !ereg( '3[47]', $cardnumber)) return a;
}
elseif ($cardtype == 'discover'){
if (strlen($cardnumber) != 16 || substr($cardnumber, 0, 4) != '6011') return 0;
}
else {
//invalid type entered
return -1;
}

// Start MOD 10 checks
$dig = toCharArray($cardnumber);
$numdig = sizeof ($dig);
$intIntJ = 0;
for ($intI=($numdig-2); $intI>=0; $intI-=2){
$dbl[$intIntJ] = $dig[$intI] * 2;
$intIntJ++;
}
$dblsz = sizeof($dbl);
$validate =0;
for ($intI=0;$intI<$dblsz;$intI++){
$add = toCharArray($dbl[$intI]);
for ($intIntJ=0;$intIntJ<sizeof($add);$intIntJ++){
$validate += $add[$intIntJ];
}
$add = '';
}
for ($intI=($numdig-1); $intI>=0; $intI-=2){
$validate += $dig[$intI];
}
if (substr($validate, -1, 1) == '0') return 1;
else return 0;
}

// takes a string and returns an array of characters
function toCharArray($intInput){
$len = strlen($intInput);
for ($intIntJ=0;$intIntJ<$len;$intIntJ++){
$char[$intIntJ] = substr($intInput, $intIntJ, 1);
}
return ($char);
}
?>