function LuhnKontrol($Numara){
for($Toplam = 0, $i = strlen($Numara) - 1; $i >= 0; $i--) {
$Rakam = (int)$Numara[$i];
$Toplam += (($i % 2) === 0) ? array_sum(str_split($Rakam * 2)) : $Rakam;
}
echo $Toplam % 10 === 0 ? 'Doğru Kart Numarası' : 'Geçersiz Kart Numarası';
}
function RakamKontrol($Numara){
if(strlen($Numara) < 16) echo '16 Haneden Küçük Olamaz';
if(strlen($Numara) > 16) echo '16 Haneden Büyük Olamaz';
if(strlen($Numara) == 16){
echo is_numeric($Numara) ? LuhnKontrol($Numara) : 'Kart Numarası Sadece Sayılardan Oluşabilir';
}
}

// Örnek Bir Master Card : 5555555555554444

RakamKontrol(5555555555554444);
?>