function getCreditCardType($str, $format = 'string')
{
if (empty($str)) {
return false;
}
$matchingPatterns = [
'visa' => '/^4[0-9]{12}(?:[0-9]{3})?$/',
'mastercard' => '/^5[1-5][0-9]{14}$/',
'amex' => '/^3[47][0-9]{13}$/',
'diners' => '/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/',
'discover' => '/^6(?:011|5[0-9]{2})[0-9]{12}$/',
'jcb' => '/^(?:2131|1800|35\d{3})\d{11}$/',
'any' => '/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}
|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|
[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/'
];
$ctr = 1;
foreach ($matchingPatterns as $key=>$pattern) {
if (preg_match($pattern, $str)) {
return $format == 'string' ? $key : $ctr;
}
$ctr++;
}
}
0 Comments