Merhaba Webkolog takipçileri! Bugünkü yazımda, web projelerimizde sıkça ihtiyaç duyduğumuz bir konu olan cURL işlemlerini anlatacağım. cURL, "Client URL Library" kelimelerinin kısaltmasıdır ve PHP'de farklı sunucularla iletişim kurmak, veri almak veya göndermek için kullanılan güçlü bir kütüphanedir. Örneğin, bir API'den veri çekerken, başka bir sitedeki bir dosyayı sunucumuza indirirken veya form verilerini başka bir adrese gönderirken cURL bizim en büyük yardımcımızdır.
cURL kütüphanesi, PHP'nin 4.0.2 ve sonraki versiyonlarında desteklenmektedir. Kullanmaya başlamadan önce, cURL modülünün sunucunuzda etkinleştirilmiş olması gerekmektedir.
cURL Modülünü Etkinleştirme
Eğer cURL modülü sunucunuzda aktif değilse, aşağıdaki adımları izleyerek etkinleştirebilirsiniz.
- Windows için: PHP.ini dosyanızı açın ve
extension=php_curl.dll
satırının başındaki noktalı virgülü (;
) kaldırın. Bu değişikliği yaptıktan sonra web sunucunuzu yeniden başlatmayı unutmayın. - Linux için: Terminalden aşağıdaki komutları çalıştırarak cURL modülünü yükleyebilir ve sunucunuzu yeniden başlatabilirsiniz.
sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart
Modülün aktif olup olmadığını kontrol etmek için phpinfo()
fonksiyonunu kullanabilir veya basitçe aşağıdaki kodu çalıştırabilirsiniz:
<?php
if (extension_loaded('curl')) {
echo "cURL modülü yüklü ve aktif.";
} else {
echo "cURL modülü yüklü değil.";
}
?>
Temel cURL Fonksiyonları
PHP'de cURL işlemleri için kullanılan temel fonksiyonlar şunlardır:
- curl_init(): Yeni bir cURL oturumu başlatır.
- curl_setopt(): Bir cURL oturumu için seçenekleri ayarlar. Bu fonksiyon, cURL işlemlerinin neredeyse tamamını yönettiğimiz yerdir.
- curl_exec(): Başlatılan cURL oturumunu çalıştırır ve işlemi gerçekleştirir.
- curl_close(): cURL oturumunu sonlandırır ve tüm kaynakları serbest bırakır.
Basit Bir cURL Get İşlemi
Şimdi en basit haliyle bir web sayfasının içeriğini cURL ile nasıl çekeceğimizi görelim.
<?php
// Yeni bir cURL oturumu başlat
$ch = curl_init();
// URL'yi belirle
curl_setopt($ch, CURLOPT_URL, "http://webkolog.net");
// Sonucun doğrudan ekrana basılmamasını, bir değişkene atanmasını sağla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Yönlendirmeleri takip et
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Oturumu çalıştır ve veriyi al
$veri = curl_exec($ch);
// Oturumu kapat
curl_close($ch);
// Gelen veriyi ekrana yazdır
echo $veri;
?>
Bu örnekte CURLOPT_RETURNTRANSFER
ayarını true
yaparak, curl_exec()
fonksiyonunun sonucu doğrudan ekrana basmak yerine bir değişken içine atamasını sağladık. Böylece gelen veriyi işleyebiliriz.
cURL ile POST İşlemi
Bir web sayfasına form verisi göndermek için POST metodunu kullanmamız gerekir. cURL ile POST işlemi yapmak oldukça basittir.
<?php
$ch = curl_init();
// Hedef URL
curl_setopt($ch, CURLOPT_URL, "http://www.site.com/test.php");
// POST işlemini etkinleştir
curl_setopt($ch, CURLOPT_POST, 1);
// Gönderilecek verileri ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, "isim=Ahmet&soyad=Yilmaz");
// İşlemi çalıştır
curl_exec($ch);
// Oturumu kapat
curl_close($ch);
?>
CURLOPT_POSTFIELDS
parametresine, göndermek istediğimiz verileri URL kodlamalı bir string olarak veriyoruz.
Gelişmiş cURL Ayarları
cURL, curl_setopt()
fonksiyonu ile birçok gelişmiş ayara olanak tanır.
CURLOPT_TIMEOUT
: İşlem için maksimum bekleme süresi. 0 değeri sonsuz bekleme anlamına gelir.CURLOPT_REFERER
: Hedef siteye hangi adresten gelindiğini belirten sahte bir referans adresi göndermek için kullanılır.CURLOPT_USERAGENT
: Sunucuya hangi tarayıcıdan bağlanıldığını belirten bilgiyi (User-Agent) değiştirmek için kullanılır.CURLOPT_HEADER
: Gelen yanıtta HTTP başlıklarının da dahil edilip edilmeyeceğini belirler.CURLOPT_COOKIE
: İşleme bir çerez (cookie) eklemek için kullanılır.
Örneğin, sahte bir User-Agent ve referans bilgisi göndererek bir sayfayı çekelim:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.ornek-site.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3");
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");
$veri = curl_exec($ch);
curl_close($ch);
echo $veri;
?>
Evet sevgili Webkolog okuyucuları, cURL ile temel ve gelişmiş işlemleri nasıl yapabileceğinizi göstermeye çalıştım. Bu güçlü araç sayesinde, projelerinizde farklı web servisleriyle ve sunucularla kolayca iletişim kurabilirsiniz.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder