@StreetAngel

Перейти по ссылке не передавая HTTP_REFERER?

Используя PHP получаю пустую страницу, в чём ошибка? как это сделать не используя flash?

$url = 'http://www.ya.ru';<br/>
$ch = curl_init();<br/>
curl_setopt($ch, CURLOPT_URL, $url);<br/>
curl_setopt($ch, CURLOPT_REFERER, &quot;&quot;);<br/>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br/>
curl_setopt($ch, CURLOPT_TIMEOUT, 10);<br/>
$result = curl_exec($ch);<br/>
curl_close($ch);<br/>
echo $result;



$ch выдаёт Resource id #45

$result пустой

curl_error($ch) пустой
  • Вопрос задан
  • 3025 просмотров
Пригласить эксперта
Ответы на вопрос 5
webscout
@webscout
У вас с cURL что то не то. Может требутся прокси, а может он заблокирован.
Ваш пример у меня работает и выдает страницу яндекса.

Причем тут флеш — вообще не допёр.
Ответ написан
@MrCrock
Для начала смотрите что происходит во время запроса:

cmd> GET /download/2402254/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3 HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: pdj.ru
cmd>
hdr> HTTP/1.1 302 Yap
hdr> Server: nginx
hdr> Date: Sun, 29 May 2011 10:04:06 GMT
hdr> Content-Type: application/octet-stream
hdr> Connection: close
hdr> Cache-Control: max-age=0
hdr> Pragma: no-cache
hdr> Location: ams-teardrop1.cdn.promodeejay.net/3G3s4vin3Z2f4Mgl3ZEn4vkf3v2ncvT-3v2s3vym4egS3GCf3ZiQ4egl36yf3egj36Ej36Ej36yj4vij4Gkj3v2s3vym458S3GCf3ZiQ4UQDk64-t6T-3Ighi12ZOrB=/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3
cmd> GET /3G3s4vin3Z2f4Mgl3ZEn4vkf3v2ncvT-3v2s3vym4egS3GCf3ZiQ4egl36yf3egj36Ej36Ej36yj4vij4Gkj3v2s3vym458S3GCf3ZiQ4UQDk64-t6T-3Ighi12ZOrB=/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3 HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: ams-teardrop1.cdn.promodeejay.net
cmd>
hdr> HTTP/1.1 200 OK
hdr> Server: nginx
hdr> Date: Sun, 29 May 2011 10:04:21 GMT
hdr> Content-Type: audio/mpeg
hdr> Content-Length: 11121893
hdr> Last-Modified: Sun, 22 May 2011 04:39:04 GMT
hdr> Connection: close
hdr> Pragma: no-cache
hdr> Cache-Control: max-age=0
hdr> Content-Disposition: attachment
hdr> Accept-Ranges: bytes
RequestDone Error = 0
StatusCode = 200

=======================


А вот что возвращает ваш скрипт:

HTTP/1.1 302 Yap
Server: nginx
Date: Sun, 29 May 2011 10:08:59 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=0
Pragma: no-cache
Location: msk-bodymovin1.cdn.promodeejay.net/3G3s4vin3Zkf3Mgl3ZEn4vkf4G2ScvT-3v2s3vym4egS3GCf363Q4hgl36yf3egj36Ej36Ej36yj4vij4Gkj3v2s3vym458S3GCf363Q4SQDk64-3ZT-3IgmtGHb4Zk=/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3


Т.е. проще говоря он идет по редиректу.

Вот рабочий код:
$url = 'http://pdj.ru/download/2402254/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 360);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Ответ написан
@StreetAngel Автор вопроса
Ну вот к примеру такая ссылка, т.е. если по ней перейти то попадаем на страницу загрузки, а если вбить в адресною строку то произойдёт скачка mp3 а как сделать чтобы при переходе сразу началась скачка?

http://pdj.ru/download/2402254/DJ_GROOVE_feat_LOC_DOG_PHIL_SHABIN_NEMINUEMA.mp3
Ответ написан
shushu
@shushu
По поводу закачки больших файлов.

Качайте по кускам (Хиадер RANGE, если сервер конечно же поддерживает докачку),
Например файл — 5мб

Качаем кусками по метру.

Передаём хиадер
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'RANGE: bytes=0-1048576' ) );
Второй раз передаём уже:
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'RANGE: bytes=1048577-2097152' ) );

и т.д.
суть думаю ясна.
Ответ написан
Комментировать
@MrCrock
Парсите из header адреса файлов, сохраняете все это в текстовый файл в формате строка=URL и экспортируете в Download Master, который весь этот список скачает. Если сделать быстро, временные ссылки будут еще живы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы