Skip to content

Instantly share code, notes, and snippets.

@mesaglam
Last active August 29, 2015 14:19
Show Gist options
  • Save mesaglam/cd4bc0e750380fdb4a6f to your computer and use it in GitHub Desktop.
Save mesaglam/cd4bc0e750380fdb4a6f to your computer and use it in GitHub Desktop.
function kimlikNoDogrula( $kimlikno , $ad , $soyad, $dogumyili)
{
$kimlikno = $kimlikno.'';
if ( !is_numeric( $kimlikno ) ) {
return false; // numerik degil
}
if ( !preg_match( '#[1-9]{1}[0-9]{10}#', $kimlikno ) ) {
return false; // ilk karakter sıfır olmamalı ve 11 karakter olmalı
}
$tekler = 0;
$ciftler = 0;
for ( $i = 0; $i < 9; $i++ ) {
if($i%2 === 0){
$tekler += $kimlikno{$i};
}else{
$ciftler += $kimlikno{$i};
}
}
//ilk 9 haneden tekleri 7 ile çarpıp çiftleri sonuçtan çıkarınca sonucun son basamağı 10. basamak oluyor
$on = ($tekler*7 - $ciftler) % 10;
if($on != $kimlikno{9}){
return false;
}
if(($tekler + $ciftler + $on)%10 != $kimlikno{10}){
return false; // ilk 10 rakam toplamının son basamagı, kimlik numarasının son basamagına esit olmalı
}
if(strlen($dogumyili) != 4){
return false;
}
$ad = mb_convert_case(str_replace('i','İ',$ad), MB_CASE_UPPER, "UTF-8");
$soyad = mb_convert_case(str_replace('i','İ',$soyad), MB_CASE_UPPER, "UTF-8");
$soap = new SoapClient("https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL");
try {
$result = $soap->TCKimlikNoDogrula(array("TCKimlikNo" => $kimlikno*1, "Ad" => $ad, "Soyad" => $soyad, "DogumYili" => $dogumyili*1));
if ($result->TCKimlikNoDogrulaResult) {
return true;
} else {
return false;
}
}
catch (Exception $ex) {
return false;
// echo $ex->faultstring;
}
}
//Örnek kullanım
$sonuc = kimlikNoDogrula(10000000146 ,'GAZİ MUSTAFA KEMAL PAŞA','ATATÜRK',1881);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment