Merhabalar,
Bu makalede piyasada çok konusuldugu halde bir türlü kaynaklarina, örneklerine ve anlatimlarina pek rastlayamadigimiz, kaynaklarin nerdeyse php-manual’le sinirli oldugu CURL kütüphanesine deginecegiz.
CURL mevzusu nedir ne degildir onu kavrayalim öncelikle…CURL farkli sunuculardan farkli protokoller ile (http, ftp, https gibi.) iletisim kurmaya yarayan güzide bir PHP kütüphanemizdir demis php-manual…Bu enfes kütüphane ayni zamanda çerezlerin, post verilerinin karsiya yüklenmesini, bir de kullanici ve sifre destegini de saglamaktaymis.
CURL‘lu tanıttıktan sonra, CURL olayini örnekler dahilinde pekistirmeye baslayalim hemen, ilk ve basit CURL örnegimizle, geçerli bir protokol ile sunucuya baglanip, sunucudan istedigimiz dokümanin içerigini yazdiralim…
1 2 3 4 | $ch = curl_init(); //<strong>CURL</strong> oturumunu baslattik.. curl_setopt($ch, CURLOPT_URL, "http://www.google.com.tr"); //URL'yi belirttik.. curl_exec($ch); //URL içerigini tarayiciya yazdirdik. curl_close($ch); //Oturumu kapattik. |
Örnekte de bir güzel anlayacagimiz gibi, belirttigimiz URL adresindeki dokümanin içerigi birebir, kendi sitemizin lokasyonunda ziyaretçiye göstermis olduk.Fakat istedigimiz bu degil de sadece içerigin belirli bir bölümü oldugunda ise CURL oturumumuzu asagidaki gibi bir hale dönüstürmek yeterli:
1 2 3 4 5 6 7 | $ch = curl_init(); //<strong>CURL</strong> oturumunu baslattik.. curl_setopt($ch, CURLOPT_URL, "http://www.google.com.tr"); //URL'yi belirttik.. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Veriyi direk döndürmedik, curl_exec fonksiyonundan döndürmesini istedik. $icerik = curl_exec($ch); //Dokümanin içerigini $icerik degiskenine atadik.. curl_close($ch); //oturumu kapattik. preg_match("%<title>(.*?)</title>%si", $icerik, $title); //içerigimizden sadece <title></title> tagleri arasindaki bölgeyi çektik.. echo $title[1]; //http://www.google.com.tr URL'sinden gelen dokümanin içinde, sayfa basligini ekrana yazdirdik. |
Artik basit bir CURL kavramı kafamızda oluştuğuna göre, daha komplike betiklerle CURL hadisesini örnekleyelim.Bu sefer isteğimiz, belirli bir bağlantı adresine, post verileri yollamak ve yanıtını almak olsun, örnek olarak da Facebook’a kullanıcı adımızla giriş yapalım ve gizlilik ayarları sayfamıza bir göz atalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $email = "e-mail"; $sifre = "sifre"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://login.facebook.com/login.php"); //Facebook'un giris sayfasi, protokol HTTPS curl_setopt($ch, CURLOPT_POST, 1); //POST yollayacagimizi belirttik.. curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($email).'&pass='.urlencode($sifre).'&login=Login'); //Yollayacagimiz HTTP POST verileri.. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //SSL dogrulamasini kaldirdik.. curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); //Çerezlerin kaydedilecegi dosya.. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Dokümanin içerigini curl_exec() fonksiyonundan alicagimizi belirttik. curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))"); //USERAGENT belirledik. curl_exec($ch); //Giris islemini gerçeklestirdik.. curl_setopt($ch, CURLOPT_URL, "http://www.facebook.com/privacy/?ref=mb"); //Girisimizi yaptiktan sonra gizlilik ayarlarimiza dogru yol aliyoruz.. curl_setopt($ch, CURLOPT_POST, 0); //Herhangi bir POST verisi yollamayacagiz. /*Su an için daha önceden belirledigimiz seçeneklerin hepsi geçerli.*/ $giz_ayar = curl_exec($ch); echo $giz_ayar; curl_close($ch); |
Simdilik bu kadar CURL‘le bulandigimiz yeter, ilerki makalerlerde, CURL ile “header”lara erişimi, vekil ayarları, ftp bağlantıları gibi konularda daha da bir bilgilenip, CURL kullanımın yanında, post verilerinin tespit edilmesi açısından kolaylık sağlayan elimizde bulunması gereken yardımcı programlardan bahsediceğiz.
Kolay gelsin.
benzer konular:














(11 votes, average: 4.55 out of 5)
design patterns