Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Редирект ссылки
 
 автор: Night_Charter   (26.04.2008 в 12:52)   письмо автору
 
 

Здравствуйте господа.
Может кто сталкивался, требуется совет гуру
Есть сайт книг, с которого парсится инфа со сслыками на скачку.
Проект не коммерческий
На днях на сайте был внедрен редирект.
Допустим ссылка идет такая:
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. за мной не заржавеет :)

   
 
 автор: Atheist   (26.04.2008 в 15:03)   письмо автору
 
   для: Night_Charter   (26.04.2008 в 12:52)
 

> Как при помощи php получить эту ссылку?
Из логов что ли? Или самому сформировать запрос и вытащить адрес?

   
 
 автор: Night_Charter   (26.04.2008 в 17:55)   письмо автору
 
   для: Atheist   (26.04.2008 в 15:03)
 

Сформировать запрос и вытащить URL )

   
 
 автор: Atheist   (26.04.2008 в 21:11)   письмо автору
 
   для: 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($chCURLOPT_HEADER1); 
curl_setopt($chCURLOPT_NOBODY1); 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_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. Если будет два, то по правилам браузер должен будет перейти по адресу во втором заголовке. Но это, конечно, вообще левый случай.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования