Bazı durumlarda herhangi bir web sitesindeki bir dosyayı sunucunuza indirmeniz gerekebilir. Bu işlemi php curl ile kolay bir şekilde yapabilirsiniz.
[code]<?php $url = “http://www.google.com.tr/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png”; $file = fopen(“glogo.png”,”w”); $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_FILE,$file); curl_exec($curl); curl_close($curl); fclose($file); ?>[/code]Etiket: curl
PHP ile T.C. Kimlik No Sorgulamak
T.C. Kimlik No, Türkiye Cumhuriyeti vatandaşlarına verilen 11 basamaktan oluşan benzersiz numaradır. Birler ve onlar basamağı doğrulama sayısıdır. T.C. Kimlik Numarası olup olmadığı hakkında bilgi vermektedir. Diğer basamaktaki sayılar ise bir algoritma ile hesaplanmaktadır.
İlk 10 rakamın toplamının birler basamağı tc kimlik numaranın 11. rakamı vermektedir.
1, 3, 5, 7 ve 9. rakamın toplamının 7 katı ile 2, 4, 6 ve 8. rakamın toplamının 9 katı olan bu sayıların toplamının birler basamağı tc kimlik numaranın 10. rakamı vermektedir.
1, 3, 5, 7 ve 9. rakamın toplamının 8 katı tc kimlik numaranın 11. rakamı vermektedir.
PHP T.C. Kimlik No sorgulama kodu şu şekildedir;
[code]<?php
function tckimlikno($tckimlikno)
{
$olmazlar=array(‘11111111110′,’22222222220′,’33333333330′,’44444444440′,’55555555550′,’66666666660′,’7777777770′,’88888888880′,’99999999990’);
if($tckimlikno[0]==0 or !is_int($tckimlikno) or strlen($tckimlikno)!=11)
{
return(false);
}
else
{
$s13579 = null;
$s2468 = null;
$s123456789on = null;
for($a=1; $a<=9; $a=$a+2)
{
$s13579 = $s13579 + $tckimlikno[$a-1];
}
for($a=2; $a<=8; $a=$a+2)
{
$s2468 = $s2468 + $tckimlikno[$a-1];
}
for($a=1; $a<=10; $a=$a+1)
{
$s123456789on = $s123456789on + $tckimlikno[$a-1];
}
if(($s13579*7+$s2468*9)%10 != $tckimlikno[9] || $s123456789on%10 != $tckimlikno[10])
{
return(false);
}
else
{
foreach($olmazlar as $olmaz)
{
if($tckimlikno==$olmaz)
{
return(false);
}
}
return(true);
}
}
}
$tckimlikno = ‘10000000146’;
$sonuc = tckimlikno($tckimlikno);
if($sonuc)
{
echo(“DOĞRU”);
}
else
{
echo(“YANLIŞ”);
}
?>[/code]
Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü sistemi üzerinden doğrulama yapmak için şu kodu kullanabilirsiniz;
[code]<?php
function tckimlik($tckimlik){
$post = ‘<?xml version=”1.0″ encoding=”utf-8″?><soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”><soap:Body><TCKimlikNoDogrula xmlns=”http://tckimlik.nvi.gov.tr/WS”><TCKimlikNo>’.$tckimlik[“tcno”].'</TCKimlikNo><Ad>’.$tckimlik[“ad”].'</Ad><Soyad>’.$tckimlik[“soyad”].'</Soyad><DogumYili>’.$tckimlik[“dogumyil”].'</DogumYili></TCKimlikNoDogrula></soap:Body></soap:Envelope>’;
$header = 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)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx” );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$gelen = curl_exec($ch);
curl_close($ch);
return(strip_tags($gelen));
}
$tckimlik = [
“tcno”=>TCKIMLIKNUMARANIZ,
“ad”=>”ADINIZ”,
“soyad”=>”SOYADINIZ”,
“dogumyil”=>”DOĞUMYILINIZ”
];
$sonuc = tckimlik($tckimlik);
if($sonuc==”true”)
{
echo(“DOĞRU”);
}
else
{
echo(“YANLIŞ”);
}
?>[/code]
PHP SoapClient class ile T.C. Kimlik Numarası’nı doğrulama yapabileceğiniz diğer bir yöntemdir.
[code]<?php
$soap = new SoapClient(“https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL”);
try {
$sonuc = $soap->TCKimlikNoDogrula([
‘TCKimlikNo’ => ‘TCKIMLIKNUMARANIZ’,
‘Ad’ => ‘ADINIZ’,
‘Soyad’ => ‘SOYADINIZ’,
‘DogumYili’ => ‘DOĞUMYILINIZ’
]);
if ($sonuc->TCKimlikNoDogrulaResult) {
echo(“DOĞRU”);
} else {
echo(“YANLIŞ”);
}
} catch (Exception $e) {
echo $e->faultstring;
}
?>[/code]
cURL, birçok farklı protokol türüyle birçok farklı sunucu tipine bağlanmanızı ve haberleşmenizi sağlayan kütüphanedir. PHP, Daniel Stenberg tarafından oluşturulan bir kütüphane olan libcurl’ı desteklemektedir. libcurl şu anda http, https, ftp, gopher, telnet, dict, file ve ldap protokollerini desteklemektedir. libcurl ayrıca HTTPS sertifikalarını, HTTP POST’unu, HTTP PUT’unu, FTP yüklemesini (bu ayrıca PHP’nin ftp uzantısıyla da yapılabilir), HTTP form tabanlı yüklemeyi, proxy’leri, çerezleri ve kullanıcı+şifre kimlik doğrulamasını destekler.
PHP cURL Kütüphanesi kullanımı şu şekildedir;
Temel cURL kullanımı;
[code]<?php
$url = “https://www.whois.web.tr”;
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
$output = curl_exec($curl);
curl_close($curl);
echo($output);
?>[/code]
cURL POST metodu;
[code]<?php
$url = “https://www.whois.web.tr”;
$params = array(
‘q’ => ‘teknokur’
);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS, $params);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
$output = curl_exec($curl);
curl_close($curl);
echo $output;
?>[/code]