ホームページ >バックエンド開発 >PHPチュートリアル >クレジット カード検証プログラム_PHP チュートリアル

クレジット カード検証プログラム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:03:23924ブラウズ


/////////////////////////////////////////// ////////
// //
// クレジット カードの検証ルーチン //
// 2000 年 5 月 15 日//
// 投稿者 ariso //
// validateCardCode($number[,$cardtype] ) //
///////////////////////////////////////////// //////


function validateCardCode($cardnumber, $cardtype = 'unknown')
{
//入力をクリーンアップ

$cardtype = strto lower($cardtype);  
$cardnumber = ereg_replace( '[-[:space:]]', '',$cardnumber);   

//タイプ固有のチェックを行う

if ($cardtype == 'unknown') {
//タイプ固有のチェックをスキップする
}
elseif ($cardtype == 'mastercard'){
if (strlen($cardnumber) != 16 || !ereg( '5[1-5]', $cardnumber)) 0 を返します。  
}
elseif ($cardtype == 'visa'){
if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) != ' 4')

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 {
//無効な型が入力されました
return -1;  
}


// MOD 10 チェックを開始

$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 $validate += $add[$intIntJ];  
}
$add = '';  
}
for ($intI=($numdig-1); $intI>=0; $intI-=2){
$validate += $dig[$intI];   
}
if (substr($validate, -1, 1) == '0') 1 を返します。  
それ以外の場合は 0 を返します。  
}  


// 文字列を受け取り、文字の配列を返します

function toCharArray($intInput){
$len = strlen($intInput);  
for ($intIntJ=0;$intIntJ $char[$intIntJ] = substr($intInput, $intIntJ, 1);      
}
return ($char);  
}

?>  

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316333.html技術記事 ?php /////////////////////////////////////////////// //// //// // クレジット カード検証ルーチン// // 2000 年 5 月 15 日// // 投稿者 ariso// // validateCardCode($number[,$cardtype])// ////// /...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。