PHP cURL ile sunucuya Resim İndirme

PHP ile bir sitedeki verileri cURL ile okumayı daha önceki yazılarımda anlattım şimdi ise bu cURL ile okuduğumuz sitedeki resim dosyalarını sunucumuza nasıl çekeceğiz kayı işlemini nasıl yapacağız bunu anlatacağım.

cURL ile site okuma dışında sadece ufak bir dosya okuma yazma işlemleri mevcut bu işlemleride bir fonksiyon haline getirdim ve sadece tek fonksiyon ile uzak sunucudaki resim dosyalarını okutacağız ve bunu sunucumuzdaki bir klasöre kayıt edeceğiz.

function curl_resim_kaydet($url,$saveto){
  $ch = curl_init ($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
  $raw=curl_exec($ch);
  curl_close ($ch);
  if(file_exists($saveto)){
      unlink($saveto);
  }
  $fp = fopen($saveto,'x');
  fwrite($fp, $raw);
  fclose($fp);
}

fonksiyonu kısaca anlatacak olursak, almış olduğu iki değer var bunlar $url ve $saveto diye iki değişken $url alanına uzak sunucudaki resim URL ini giriyoruz, $saveto alanına ise sunucuda kayıt edeceğimiz klasör adını ve resim dosyası adını giriyoruz.

örnek kullanım ;

curl_resim_kaydet('https://www.brkdgn.com/resim.jpg','img/resim.jpg');

fonksiyonda önemli olarak nitelendireceğim bir satır bulunuyor ;

  if(file_exists($saveto)){
      unlink($saveto);
  }

yukarıdaki koşulda eğer $saveto yolunda belirttiğimiz resim dosyası var ise bunu siler yani üzerine yazma bu fonksiyonda yok siler ve yeniden oluşturur.