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..

function dosya_indir($link,$name=null)
{
$link_info = pathinfo($link);  //Yol bilgilerini değişkene atıyoruz.
$uzanti = strtolower($link_info['extension']); //Dosyanın uzantısını değişkene atıyoruz.
$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.
$curl = curl_init($link);
$fopen = fopen($file,'w');
curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
curl_setopt($curl, CURLOPT_FILE, $fopen);
curl_exec($curl);
curl_close($curl);
fclose($fopen);
}

Kullanım #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

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 : , , , ,

2 Responses to “Php ile Dosya indirme (curl)”

  1. yahu diyor ki:

    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:

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

Leave a Reply