Last active
August 29, 2015 14:19
-
-
Save mesaglam/cd4bc0e750380fdb4a6f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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