Задать вопрос
@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) пустой
  • Вопрос задан
  • 3026 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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, который весь этот список скачает. Если сделать быстро, временные ссылки будут еще живы.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы