PHP CURL Nedir? Kurulumu ve Kullanımı

awesofc

Katılımcı Üye
18 Tem 2021
648
341
25
sanal ortam :)

CURL nedir?​

CURL (Client URL), çeşitli protokoller arasında veri alışverişine imkan veren bir yazılım projesidir.
CURL, Libcurl ve CURL olmak üzere ikiye ayrılır.

Libcurl C, C++, Java, C# vb. programlama dilleri için arabirim görevi görerek çeşitli protokollerden veri alışverişini sağlar.

CURL ise Libcurl kütüphanesini kullanarak işletim sistemine ait komut yorumlayıcısından (CMD, PowerShell, Terminal vb.) veri alışverişini sağlar.

PHP CURL kurulumu​

CURL kurulumunu kontrol etmek için aşağıdaki komutları kullanabilirsiniz.

<?php

if (extension_loaded("curl")) {
echo "Curl kurulu.";
} else {
echo "Curl kurulu değil.";
}

?>
CURL kurulu değilse aşağıdaki komut ile php.ini dosyasının yolunu bularak PHP sürümüne göre extension=curl, extension=php_curl ifadesinin önündeki noktalı virgülü kaldırarak etkinleştirebilirsiniz.

<?php

echo php_ini_loaded_file();

?>
CURL kütüphanesini etkinleştirdikten sonra ayarların aktif olması için sunucu yazılımını yeniden başlatarak kurulumu tamamlayabilirsiniz.

PHP ayar dosyası içinde CURL kütüphanesine ait herhangi bir şey yoksa curl adresinde CURL kurulumu için gerekli olan dosyaları temin edebilirsiniz.

PHP CURL kullanımı​

PHP CURL yapısı içinde çeşitli işlemler için fonksiyonlar tanımlanmıştır.

PHP ile CURL işlemlerinde curl_init, curl_setopt, curl_exec, curl_close fonksiyonları kullanılır.

curl_init

Fonksiyon CURL işlemini başlatmak için kullanılır. Fonksiyonun kullanımına bağlı olarak parametre ile aldığı adrese bağlanılacak adres olarak tanımlar.

curl_setopt

CURL işlemleri sırasında kullanılacak ayarları belirleyen önemli fonksiyondur. Fonksiyon dosya indirme, veri çekme, veri gönderme gibi farklı işlemlerin yapılması sağlar.

curl_exec

Ayarları yapılmış olan CURL oturumunu çalıştırır ve CURL ayarlarına göre işlem yapar.

curl_close

CURL oturumunu sonlandırır.

Aşağıdaki örnekte CURL ile site bağlantısı gösterilmiştir.

<?php

$ch = curl_init('http://www.yusufsezer.com.tr');

curl_exec($ch);

curl_close($ch);

?>
Yukarıdaki örneğin curl_setopt fonksiyonu ile yapılmış halidir.

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.yusufsezer.com.tr');

curl_exec($ch);

curl_close($ch);

?>
En önemli işlemin curl_setopt ile uygun ayarların yapılması olduğunu söylemiştik.

Aşağıdaki örnekte alınan değer bir değişkene atanmıştır.

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.yusufsezer.com.tr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$sonuc = curl_exec($ch);

curl_close($ch);

echo htmlspecialchars($sonuc);

?>
Örnekte curl_setopt fonksiyonu ile CURLOPT_RETURNTRANSFER ayarı etkin yapılarak curl_exec fonksiyonunun alınan değeri döndürmesi sağlanmıştır.

Dönen değer ile dosyaya yazdırma veya HTML ayrıştırıcıyla (HTML Parser) istenen değerlerin alınması sağlanabilir.

CURL ayarları yapılan işleme ve protokole göre değişiklik gösterebilir.

PHP CURL dosya indirme​

PHP CURL kullanımı başlığında yapılan işleme göre uygun CURL ayarının belirlenmesi gerektiğini söylemiştik.

CURL ile dosya indirme işlemi basit olarak aşağıdaki gibi yapılabilir.

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.yusufsezer.com.tr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$sonuc = curl_exec($ch);

curl_close($ch);

file_put_contents('yusuf-sezer.html', $sonuc);

?>
Benzer şekilde çeşitli CURL ayarları ve PHP dosya işlem fonksiyonu ile de yapılabilir.

<?php

$ch = curl_init();

$dosya = fopen('yusuf-sezer.html', 'w');

curl_setopt($ch, CURLOPT_URL, 'http://www.yusufsezer.com.tr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $dosya);

$sonuc = curl_exec($ch);

curl_close($ch);

fclose($dosya);

?>
CURL ile dosya indirme işleminde dikkat edilmesi gereken dosya boyutuna göre işlemin uzun süreceği ve PHP ayarlarında belirtilen PHP komut çalıştırma süresi sınırını aşılacağıdır.

CURL ile dosya indirirken PHP ayarlarından komut çalıştırma süresinin değiştirilmesi faydalı olacaktır.

Hayırlı günler dilerim.
....
konu alintidir
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.