Curl ile başka siteden veri çekmek
Merhaba arkadaşlar PHP Curl kullanımını az çok biliyorum fakat istediğim şey şu; bi tane web sitemde yaklaşık 100 tane blog paylaşımı var ben diğer bir sitemden bu verileri curl ile çekmek istiyorum nasıl bir yol izlemeliyim?
Aynı veritabanını bağlamak gibi bir amacım yok o şekilde zaten istediğim verilere ulaşırım benim amacım burada php curl konusunda biraz daha kendimi geliştirmek
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
Öncelikle PHP Curl kütüphanesini kurmanız ve projenize dahil etmeniz gerekir.
Daha sonra, istediğiniz web sitesinin URL'sini belirterek bir CURL isteği yapabilirsiniz.
CURLOPT_RETURNTRANSFER seçeneğini ayarlayarak, istek sonucunu bir değişkende tutabilir ve içeriğini işleyebilirsiniz.
Aşağıda basit bir örnek verilmiştir:
// Kurulum
$ch = curl_init();
// URL ayarlamak
curl_setopt($ch, CURLOPT_URL, "https://erhanurgun.com.tr/");
// Cevapları değişkende tutmak için seçeneği ayarlamak
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// İstek yapmak
$output = curl_exec($ch);
// İşlemler bittiğinde kaynakları serbest bırakmak
curl_close($ch);
// İçeriği işlemek
// ...
Aşağıda ki örnekte, bir formun verilerini içeren bir POST isteği yapılmaktadır.
İstek sonucunu bir değişkende tutarak, içeriğini işleyebilir ve istediğiniz verilere ulaşabilirsiniz.
// Form verilerini ayarlamak
$data = array(
'field1' => 'value1',
'field2' => 'value2',
// ...
);
// Kurulum
$ch = curl_init();
// URL ayarlamak
curl_setopt($ch, CURLOPT_URL, "https://erhanurgun.com.tr/www/submit.php");
// POST isteğini ayarlamak
curl_setopt($ch, CURLOPT_POST, 1);
// Form verilerini ayarlamak
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// Cevapları değişkende tutmak için seçeneği ayarlamak
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// İstek yapmak
$output = curl_exec($ch);
// İşlemler bittiğinde bağlantıyı sonlandırma
curl_close($ch);
// İçeriği işlemek
// ...
PHP Curl kütüphanesinin diğer seçeneklerini ve fonksiyonlarını da kullanarak daha gelişmiş ve özelleştirilmiş istekler yapabilirsiniz.
Daha fazla bilgi için PHP Curl kütüphanesiyle ilgili dokümantasyona bakabilirsiniz
Link: (https://www.php.net/manual/tr/book.curl.php)
ana sitene restapi kur, verileri curl ile json olarak çeker çok rahat kullanırsın.
Curl için bir sıkıntı yok, standart curl bloğunu kullanacaksın. Dikkat etmen gereken şey eğer ssl kullanıyorsan, her iki sitende de ssl olmasına dikkat et.
// Bir cURL bağlantısı oluşturuyoruz
$ch = curl_init();
// Bağlanmak istediğimiz sayfanın URL'ini belirliyoruz
$url = "http://www.example.com/blog/icerik1";
// cURL ayarlarını yapıyoruz
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Bağlantıyı gerçekleştiriyoruz
$result = curl_exec($ch);
// Bağlantıyı kapatıyoruz
curl_close($ch);
// İçeriği ekrana yazdırıyoruz
echo $result;
Bir fonksiyon veya sınıf yazarsın, bu fonksiyon veya blog sitenin url yapısına göre parametreler alır, mesela www.siten.com/blog/3 buradaki 3 blog id değerin olsun, fonksiyona veya sınıfa bu 3 değerini verip urlnin sonuna ekletip çekersin. url yapın nasılsa ona göre bir ayarlama yapman gerekir.