<?php
function curl($url){
$ch = curl_init();
$timeout = "5";
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_REFERER,"http://www.google.com.tr");
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER["HTTP_USERAGENT"]);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
echo curl("http://www.webmaster.tc/index.php");
?>Şimdi buradaki kodları açıklamamız gerekirse ;
CURLOPT_SSL_VERIFYPEER => SSL sertifikamızın olmadığını söylüyoruz, Bu sayede https:// sayfalarla iletişime geçebiliyoruz.
CURLOPT_RETURNTRANSFER => Eğer bu değeri 1 yapmaz iseniz, Bir fonksiyon da echo kullanmış gibi sonucu değişkene atayamazsınız. Yani direk ekrana basılır (siz echo demeseniz bile) onun için bunu 1 veya true yapmanız gerekir.
CURLOPT_CONNECTTIMEOUT => Burada da siteden kaç sn tepki bekleyeceğini yazıyoruz, Yani $timeout değişkeni 5 e eşit olduğun için eğer 5 sn de site tepki vermez ise işlemi sonlandıracak.
CURLOPT_FOLLOWLOCATION => En önemli özelliklerden biri de bu, Bu özellik sayesinde yönlendirmeleri otomatik takip edebilirsiniz. Yani a.com sayfasına girdiğiniz de, sizi a.com/a.php sayfasına yönlendiriyorsa curl bunu takip etmez. Ama CURLOPT_FOLLOWLOCATION özelliği sayesinde, Otomatik olarak yönlendirmeyi takip ettirip o sayfanın kaynağını size verecektir.
Dikkat ! Bu özellik için sunucunuz da ayar gerekebilir, Onun için eğer ihtiyacınız yok ise ve Sunucunuz da followlocation ile İlgili bir hata çıktı ise O satırı silebilirsiniz. Eğer gerekli ise ve Hata veriyor ise open_base açmanız gerekmektedir (Hatayı hostcunuza verirseniz o çözer).
CURLOPT_REFERER => Kişinin sitesine hangi siteden geldiğimizi söylüyoruz, Yani siz de sayaçlarınızı incelerken görürsünüz şu adresden gelmiş şeklinde, Burada da geldiğimiz adresi gösteriyoruz.
CURLOPT_USERAGENT => Burada da kişinin sitesine girerken, Kullandığımız tarayıcı hakkında bilgi veriyoruz. HTTP_USERAGENT kullandığım için bu php sayfasını kim görüntüler ise Onun tarayıcı bilgileri yansıyacaktır. Buda, Her seferinde aynı bilginin gitmesini engelleyecektir.
file_get_contents, Curl dan daha fazla sunucuyu yorduğu için ve Çok basit şekilde engellenebileceği için, Yukarıdaki fonksiyonu botlarınız da kullanabilirsiniz. Bu sayede, Daha hızlı / Daha güvenli şekilde performans alabilirsiniz. (Eğer genel bir kod yazacak iseniz, Mutlaka followlocation kaldırın. (İhtiyacınız yoksa) aksi taktir de her hostta çalışmayacaktır).