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.