|
|
|
| Здравствуйте господа.
Может кто сталкивался, требуется совет гуру
Есть сайт книг, с которого парсится инфа со сслыками на скачку.
Проект не коммерческий
На днях на сайте был внедрен редирект.
Допустим ссылка идет такая:
http://xxx.com/engine/go.php?url=aHR0cDovL2RlcG9zaXRmaWxlcy5jb20vZml sZXMvNDk2NzUyOA%3D%3D
Вот логи флашгета (менеджера закачек)
Sat Apr 26 11:37:37 2008 соединение
Sat Apr 26 11:37:37 2008 GET /engine/go.php?url=aHR0cDovL2xldGl0Yml0Lm5ldC9kb3dubG9 hZC9hYzRjNWY4NzU4OTcvZm9rdXN5LnJhci 5odG1s HTTP/1.1
Sat Apr 26 11:37:37 2008 Host: xxx.com
Sat Apr 26 11:37:37 2008 Accept: */*
Sat Apr 26 11:37:37 2008 Referer: http://xxx.com/engine
Sat Apr 26 11:37:37 2008 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Sat Apr 26 11:37:37 2008 Pragma: no-cache
Sat Apr 26 11:37:37 2008 Cache-Control: no-cache
Sat Apr 26 11:37:37 2008 Connection: close
Sat Apr 26 11:37:37 2008 HTTP/1.1 302 Found
Sat Apr 26 11:37:37 2008 Date: Sat, 26 Apr 2008 08:21:24 GMT
Sat Apr 26 11:37:37 2008 Server: Apache/2.0.52 (CentOS)
Sat Apr 26 11:37:37 2008 X-Powered-By: PHP/4.3.9
Sat Apr 26 11:37:37 2008 Location: http://letitbit.net/download/ac4c5f875897/fokusy.rar.html
Sat Apr 26 11:37:37 2008 Content-Length: 116
Sat Apr 26 11:37:37 2008 Connection: close
Sat Apr 26 11:37:37 2008 Content-Type: text/html
Sat Apr 26 11:37:37 2008 перенаправление на http://letitbit.net/download/ac4c5f875897/fokusy.rar.html
Sat Apr 26 11:37:37 2008 соединение с letitbit.net:80
......
|
как видно из логов дальше нас редиректит на хостинг файлов
__http://letitbit.net/download/ac4c5f875897/fokusy.rar.html
Как при помощи php получить эту ссылку?
P.S. за мной не заржавеет :) | |
|
|
|
|
|
|
|
для: Night_Charter
(26.04.2008 в 12:52)
| | > Как при помощи php получить эту ссылку?
Из логов что ли? Или самому сформировать запрос и вытащить адрес? | |
|
|
|
|
|
|
|
для: Atheist
(26.04.2008 в 15:03)
| | Сформировать запрос и вытащить URL ) | |
|
|
|
|
|
|
|
для: Night_Charter
(26.04.2008 в 17:55)
| | Если есть поддержка cURL:
<?php
$ch = curl_init('http://xxx.com/engine/go.php?url=aHR0cDovL2RlcG9zaXRmaWxlcy5jb20vZml sZXMvNDk2NzUyOA%3D%3D');
$out[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
$out[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
$out[] = 'Accept-Language: en-us,en;q=0.5';
$out[] = 'Connection: close';
$out[] = 'Referer: http://xxx.com/engine';
$out[] = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14';
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $out);
$response = curl_exec($ch);
curl_close($ch);
if( preg_match('/^Location: *(.*)$/im', $response, $match) )
{
echo $match[1];
}
?>
|
P.S. Обрати внимание на адрес. В него добавляется пробел форумом.
P.P.S. Можно использовать curl_setopt_array() если версия PHP >= 5.1.6
P.P.P.S. Вообще говоря, достанется первый Location. Если будет два, то по правилам браузер должен будет перейти по адресу во втором заголовке. Но это, конечно, вообще левый случай. | |
|
|
|