Php rapidshare API kullanarak rapidshare dosyasını indirin

0 Cevap php

Ben özgür bir kullanıcı olarak "indirme" yordam kullanarak bir rapidshare dosyasını indirmek için çalışıyorum. Aşağıdaki Ben sabrutinden yanıt almak için kullandıkları kod.

function rs_download($params)
{
    $url = "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download&fileid=".$params['fileid']."&filename=".$params['filename'];

    $reply = @file_get_contents($url);

    if(!$reply)
    {
        return false;
    }

    $result_arr = array();
    $result_keys = array(0=> 'hostname', 1=>'dlauth', 2=>'countdown_time', 3=>'md5hex');

    if( preg_match("/DL:(.*)/", $reply, $reply_matches) )
    {
        $reply_altered = $reply_matches[1];        
    }
    else
    {
        return false;
    }

    foreach( explode(',', $reply_altered) as $index => $value )
    {
        $result_arr[ $result_keys[$index] ] = $value;        
    }

    return $result_arr;

}

For instance; trying to download this... http://rapidshare.com/files/440817141/AutoRun__live-down.com_Champ.rar

I (...) rs_download için fileID (440817141) ve dosya (AutoRun__live-down.com_Champ.rar) geçmek ve Rapidshare adlı API doc dediği gibi bir cevap alıyorum.

Rapidshare api doc ("alt = download" bakın) indir kimlik dizesi ile sunucu hostname çağrı diyor ama ben url almalı formu ne çözemedim.

Herhangi bir öneriniz?, Ben denedim

$ DOWNLOAD_URL = "http://-hostname $ / $ the-dlauth-string/files / $ fileid / $ dosya"

ve bir çift yukarıdaki ve diğer varyasyonları, hiçbir şey çalıştı.

Ben aşağıdaki gibi dosya indirmek için kıvırmak kullanın;

    $cr = curl_init();
    $fp = fopen ("d:/downloaded_files/file1.rar", "w");    
    // set curl options 
    $curl_options = array( 
         CURLOPT_URL => $download_url
        ,CURLOPT_FILE => $fp
        ,CURLOPT_HEADER => false
        ,CURLOPT_CONNECTTIMEOUT => 0 
        ,CURLOPT_FOLLOWLOCATION => true
    );
    curl_setopt_array($cr, $curl_options);

    curl_exec($cr);
    curl_close($cr);
    fclose($fp);

Yukarıdaki kıvırmak kod çalışmak için görünmüyor, hiçbir şey indirilmiş olur. Muhtemelen yanlış onun indirme url.

Ayrıca indirme url için bu biçimi çalıştı:

"Http://rs $ SunucuKimliği $ shorthost.rapidshare.com / files / $ fileid / $ dosya"

Bu kıvırmak bir dosya girişi yazıyor ama o yaptığı tüm (0/1 kb dosya yazıyor) olduğu ile.

Burada rapidshare birkaç diğer değerler arasında SunucuKimliği, shorthost almak için kullandığınız koddur.

function rs_checkfile($params)
{
    $url = "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles_v1&files=".$params['fileids']."&filenames=".$params['filenames'];

    // the response from rapishare would a string something like:
    // 440817141,AutoRun__live-down.com_Champ.rar,47768,20,1,l3,0 

    $reply = @file_get_contents($url);
    if(!$reply)
    {
        return false;
    }

    $result_arr = array();
    $result_keys = array(0=> 'file_id', 1=>'file_name', 2=>'file_size', 3=>'server_id', 4=>'file_status', 5=>'short_host'
    , 6=>'md5');

    foreach( explode(',', $reply) as $index => $value )
    {
        $result_arr[ $result_keys[$index] ] = $value;        
    }

    return $result_arr;
}

rs_checkfile (...) (Tek bir dosya için çağrıda olursa virgül) virgül fileids ve dosya ayrılmış alır

Önerileriniz için şimdiden teşekkür ederiz.

0 Cevap