Php ile Dosya indirme (curl)

Curl ile dışarıdan toplu olarak dosya çekmem gerektiğinde yazdığım ufak bi’ php betiği.. Biraz daha kullanılabilir hale gelmiş hali :)

Ayrıca HTTP_VERSION ‘ u 2.0 yerine 1.0 kullanmamın nedeni, 2.0′da bazen gelen veri paketlerde eksik veri olması yüzünden %100 güvenilirlik sağlamıyordu.. Çözüm olarak cappytoi’nun fikriyle Header’e 1.0 HTTP_VERSION’u yollayarak daha net paketler elde etmiş olduk..

  1. function dosya_indir($link,$name=null)
  2. {
  3. $link_info = pathinfo($link);  //Yol bilgilerini değişkene atıyoruz.
  4. $uzanti = strtolower($link_info[‘extension’]); //Dosyanın uzantısını değişkene atıyoruz.
  5. $file = ($name) ? $name.‘.’.$uzanti : $link_info[‘basename’]; //Eğer kayıt edilmek üzere dosya adı girilmişse, girilen dosya adını değişkene atıyouruz, girilmemişse orjinal adını değişkene atıyoruz.
  6. $curl = curl_init($link);
  7. $fopen = fopen($file,‘w’);
  8. curl_setopt($curl, CURLOPT_HEADER,0);
  9. curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
  10. curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
  11. curl_setopt($curl, CURLOPT_FILE, $fopen);
  12. curl_exec($curl);
  13. curl_close($curl);
  14. fclose($fopen);
  15. }

Kullanım #1

  1. dosya_indir(‘http://site/a.zip’);

PHP dosyasının bulunduğu dizine orjinal adında yani [a.zip] şeklinde dosyayı kayıt eder.

Kullanım #2

  1. dosya_indir(‘http://site/a.zip’,‘dosya_adi’,);

PHP dosyasının bulunduğu dizine 2. parametre yani [dosya_adi.zip] şeklinde dosyayı kayıt eder.

Etiketler: , , , ,

“Php ile Dosya indirme (curl)” için 2 Yorum

  1. yahu diyor ki:
    28 Ocak 2010 13:31

    yahu bir türlü anlayamadım.. benim istediğim mesela serverde bir klasör açıp içindeki dosyaları linke tıklandığında indirtmek.. nasıl yapıcam

  2. Kerem Bekman diyor ki:
    28 Ocak 2010 14:16

    Klasör fonksiyonları ile, klasör içindeki tüm dosyaları döngüyle beraber yukarıdaki fonksiyona sokabilirsiniz..

Yorum Yazın