вот че смог сделать:
[more]<html>
<head>
<title>Rapidshare premium downloader</title>
<style> body { background-color: #f1f1f1; }
table { border: 1px #333333 solid; }
td,th { font-size: 10px; font-family: verdana, tahoma; color: #666666; background-color: #f1f1f1; border: 0px #333333 solid; }
input { font-family: verdana, tahoma; font-size: 10px; color: grey; background-color: #f1f1f1; border: 1px #333333 solid; }
a { font-size: 10px; text-decoration: none; color: grey; }
</style>
</head>
<table border="0" width="600" align="center">
<form action="" method="post">
<tr><td>Ссылки</td><td><textarea name="links" cols="120" rows="10"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Отправить"></td></tr>
</form>
</table>
</html>
<?php
$rapidlogin = "мой логин или ИД";
$rapidpass = "мой пасс";
$buf = "";
$nn = "\r\n";
if(isset($_POST['links'])) {
$links = $_POST['links'];
$links = trim($links);
$links = ereg_replace("\n", "|||", $links);
$links = ereg_replace("\r", "", $links);
$linksArray = explode("|||", $links);
$auth = base64_encode($rapidlogin.":".$rapidpass);
for ($i=0;$i<sizeof($linksArray);$i++) {
$nowFile = explode("/", $linksArray[$i]);
// открыли соединение
$so = fsockopen("rapidshare.com", 80, &$errno, &$errstr, 30);
$out = "GET /files/".$nowFile[4]."/".$nowFile[5]." HTTP/1.0".$nn;
$out .= "Authorization: Basic ".$auth.$nn;
$out .= "User-Agent: Mozilla/4.0 (compatible; PHP-script engine)".$nn;
$out .= "Accept: */*".$nn;
$out .= "Range: bytes=0-".$nn;
$out .= "Host: rapidshare.com".$nn;
$out .= "Connection: close".$nn.$nn;
fputs($so, $out);
echo $out;
// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
// если наступит, то со след. байта начнется документ
//while(fgets($so,2048)!="\r\n" && !feof($so));
$f=fopen($nowFile[5],"wb+");
// читаем документ в переменную
while(!feof($so)) {
$buf=fread($so,2048);
fwrite($f,$buf,strlen($buf));
}
// закрываем сокет
fclose($so);
fclose($f);
}
}
?>[/more]
качаю
http://rapidshare.com/files/79425742/Visions_blue_3.7.zip вот че качает:
Цитата: HTTP/1.1 302 Moved Temporarily
P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
Date: Fri, 11 Jan 2008 10:57:49 GMT
Connection: close
Accept-Ranges: bytes
Location: http://rs243l3.rapidshare.com/files/79425742/Visions_blue_3.7.zip
Content-Length: 0
Теперь нужно получить то, что в Location и кочать по этому адресу или как? Помогите!!!
Добавлено: йо-хо-хо и бутылка рома!
[more]<html>
<head>
<title>Rapidshare premium downloader</title>
<style> body { background-color: #f1f1f1; }
table { border: 1px #333333 solid; }
td,th { font-size: 10px; font-family: verdana, tahoma; color: #666666; background-color: #f1f1f1; border: 0px #333333 solid; }
input { font-family: verdana, tahoma; font-size: 10px; color: grey; background-color: #f1f1f1; border: 1px #333333 solid; }
a { font-size: 10px; text-decoration: none; color: grey; }
</style>
</head>
<table border="0" width="600" align="center">
<form action="" method="post">
<tr><td>Ссылки</td><td><textarea name="links" cols="120" rows="10"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Отправить"></td></tr>
</form>
</table>
</html>
<?php
$rapidlogin = "фффф";
$rapidpass = "фффф";
$buf = "";
$nn = "\r\n";
if(isset($_POST['links'])) {
$links = $_POST['links'];
$links = trim($links);
$links = ereg_replace("\n", "|||", $links);
$links = ereg_replace("\r", "", $links);
$linksArray = explode("|||", $links);
$auth = base64_encode($rapidlogin.":".$rapidpass);
for ($i=0;$i<sizeof($linksArray);$i++) {
$nowFile = explode("/", $linksArray[$i]);
// открыли соединение
$so = fsockopen("rapidshare.com", 80, &$errno, &$errstr, 30);
$out = "GET /files/".$nowFile[4]."/".$nowFile[5]." HTTP/1.0".$nn;
$out .= "Authorization: Basic ".$auth.$nn;
$out .= "User-Agent: Mozilla/4.0 (compatible; PHP-script engine)".$nn;
$out .= "Accept: */*".$nn;
$out .= "Range: bytes=0-".$nn;
$out .= "Host: rapidshare.com".$nn;
$out .= "Connection: close".$nn.$nn;
fputs($so, $out);
echo $out;
// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
// если наступит, то со след. байта начнется документ
//while(fgets($so,2048)!="\r\n" && !feof($so));
// читаем документ в переменную
$buf=fread($so,2048);
if (ereg('Location: (["-z]+)',$buf,$tmp))
$location = $tmp[1];
echo "<br>".$buf."<br>";
echo "<br>".$location;
// закрываем сокет
fclose($so);
$nowFile = explode("/", $location);
// открыли соединение
$so = fsockopen($nowFile[2], 80, &$errno, &$errstr, 30);
$out = "GET /files/".$nowFile[4]."/".$nowFile[5]." HTTP/1.1".$nn;
$out .= "Authorization: Basic ".$auth.$nn;
$out .= "Location: ".$location.$nn;
$out .= "User-Agent: Mozilla/4.0 (compatible; PHP-script engine)".$nn;
$out .= "Accept: */*".$nn;
$out .= "Range: bytes=0-".$nn;
$out .= "Host: ".$nowFile[2].$nn;
$out .= "Connection: close".$nn.$nn;
fputs($so, $out);
echo $out;
// читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
// если наступит, то со след. байта начнется документ
while(fgets($so,2048)!="\r\n" && !feof($so));
$f=fopen($nowFile[5],"wb+");
// читаем документ в переменную
while(!feof($so)) {
$buf=fread($so,2048);
fwrite($f,$buf,strlen($buf));
}
// закрываем сокет
fclose($so);
fclose($f);
}
}
?>[/more]
остался всякий меляк типа установить время обработки скрипта равное бесконечности, размеры буфера и тд) Если кто-нить приделает прогресс бар буду благодарен)!!!!