diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f21b5eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3c9badb --- /dev/null +++ b/composer.json @@ -0,0 +1,18 @@ +{ + "name": "epigra/tckimlik", + "description": "TC Kimlik Numarası Kontrolü ve Doğrulaması", + "keywords": ["tc kimlik","tckn","tc","doğrulama","validation"], + "homepage": "https://github.com/epigra/tckimlik", + "license": "MIT", + "authors": [ + { + "name": "Uğur Aydoğdu", + "email": "ugur.aydogdu@epigra.com" + } + ], + "autoload": { + "psr-4": { + "Epigra\\": "src/" + } + } +} \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8782347 --- /dev/null +++ b/readme.md @@ -0,0 +1,37 @@ +# TC Kimlik Numarası Kontrolü ve Doğrulaması (Validation of Turkish Identification Number) + + +## Kullanım + +#### Doğrulama (Verification) + +```php +use Epigra\TcKimlik; + +$check = TcKimlik::verify('tckimlikno'); //string +var_dump($check); + +$data['tcno'] = 'tckimlikno'; +$check2 = TcKimlik::verify($data); //array +var_dump($check2); +``` + +#### SOAP Onay (Validation) + +```php +use Epigra\TcKimlik; + +$data = array( + 'tcno' => 'tckimlikno', + 'isim' => 'XXXXX XXX', + 'soyisim' => 'XXXXXX', + 'dogumyili' => 'XXXX', +); + +$check = TcKimlik::validate($data); //auto uppercase +var_dump($check); + +$check2 = TcKimlik::validate($data,false); // auto uppercase false +var_dump($check2); +``` + diff --git a/src/TcKimlik.php b/src/TcKimlik.php new file mode 100644 index 0000000..506e7d3 --- /dev/null +++ b/src/TcKimlik.php @@ -0,0 +1,88 @@ + + + + + '.$data['tcno'].' + '.$data['isim'].' + '.$data['soyisim'].' + '.$data['dogumyili'].' + + + '; + + $ch = curl_init(); + + // CURL options + $options = array( + CURLOPT_URL => 'https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx', + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => $post_data, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_HEADER => false, + CURLOPT_HTTPHEADER => array( + 'POST /Service/KPSPublic.asmx HTTP/1.1', + 'Host: tckimlik.nvi.gov.tr', + 'Content-Type: text/xml; charset=utf-8', + 'SOAPAction: "http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula"', + 'Content-Length: '.strlen($post_data) + ), + ); + curl_setopt_array($ch, $options); + + $response = curl_exec($ch); + curl_close($ch); + + return (strip_tags($response) === 'true') ? true : false; + } + + private static function tr_uppercase($string){ + $string = str_replace(array('i'), array('İ'), $string); + return mb_convert_case($string, MB_CASE_UPPER, "UTF-8"); + } + +} \ No newline at end of file