function kimlikNoDogrula($kimlikNo) {
// Kimlik numarasının 11 haneli olup olmadığını kontrol et
if(strlen($kimlikNo) != 11)
return false;
// Tüm karakterlerin rakam olup olmadığını kontrol et
if(!ctype_digit($kimlikNo))
return false;
// İlk rakam 0 olamaz
if($kimlikNo[0] == 0)
return false;
// Kimlik numarası algoritması
$ilk9Basamak = substr($kimlikNo, 0, 9);
$ilk10BasamakToplam = 0;
for($i = 0; $i < 9; $i++) {
$ilk10BasamakToplam += $ilk9Basamak[$i] * (10 - $i);
}
$ilk10BasamakKontrol = $ilk10BasamakToplam % 11;
if($ilk10BasamakKontrol == 10) {
$ilk10BasamakKontrol = 0;
}
// 10. basamak kontrolü
if($kimlikNo[9] != $ilk10BasamakKontrol)
return false;
// 11. basamak kontrolü
$sonBasamakToplam = 0;
for($i = 0; $i < 10; $i++) {
$sonBasamakToplam += $kimlikNo[$i];
}
if($sonBasamakToplam % 10 != $kimlikNo[10])
return false;
// Geçerli kimlik numarası
return true;
}
// Test
$kimlikNo = "12345678901"; // Geçerli bir kimlik numarası
if(kimlikNoDogrula($kimlikNo)) {
echo "Kimlik numarası geçerli.";
} else {
echo "Kimlik numarası geçersiz.";
}chatGPT sağolsun. umarım işine yarar.