Автор Тема: Как получить url... из url )  (Прочитано 2151 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gair

  • Коллежский регистратор
  • *
  • Сообщений: 11
  • Репутация: 0
  • Пол: Мужской
  • SkypeID: grafgair
Как получить url... из url )
« : ёоЭм 19, 2009, 01:46:15 pm »
Есть ссылка вида www.site1.com/image.gif?aaa=параметр, которая при выполнении выдаёт ссылку на www.site1.com/image0.gif или www.site1.com/image1.gif... Как можно получить собственно ссылку-результат? (вставлять в страницу этот элемент не надо!).

Оффлайн Veliant

  • Надворный советник
  • *****
  • Сообщений: 331
  • Репутация: 7
  • Пол: Мужской
Re: Как получить url... из url )
« Ответ #1 : ёоЭм 20, 2009, 03:41:28 pm »
как вариант через сокеты сделать HTTP запрос, и парсить ответ... т.к. там должна быть переадресация с кодом состояния 3**
Помощь в программировани и различные статьи
http://libcoder.blogspot.com/

Оффлайн Gair

  • Коллежский регистратор
  • *
  • Сообщений: 11
  • Репутация: 0
  • Пол: Мужской
  • SkypeID: grafgair
Re: Как получить url... из url )
« Ответ #2 : ёоЭм 20, 2009, 03:47:06 pm »
А можно поподробнее? А то я в веб-программинге близок к 0 :(

Оффлайн Veliant

  • Надворный советник
  • *****
  • Сообщений: 331
  • Репутация: 7
  • Пол: Мужской
Re: Как получить url... из url )
« Ответ #3 : ёоЭм 20, 2009, 07:50:31 pm »
покажу на примере ссылок выдаваемых яндексом при поиске
Код: (php) [Выделить]

$headers = "GET /redir/dtype=iweb/path=80.22.82/vars=84=85,186=80,321=279/cltr=1/reg=213/u=/btt=87/reqid=1245515803-68653927697/*data=url%3Dhttp%253A%252F%252Fforum.ishodniki.ru%252F%26ts%3D1245515803%26uid%3D3230281237827437&sign=9cfabfaaaee9722d21a91f8fce7fd559&keyno=0 HTTP/1.1\r\n";
$headers .= "Host: clck.yandex.ru\r\n";
$headers .= "User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1\r\n";
$headers .= "Referer: http://yandex.ru/\r\n";
$headers .= "Connection: Close\r\n\r\n";

$fp = fsockopen("clck.yandex.ru", 80, $errno, $errstr, 30);
if (!$fp) echo "$errstr ($errno)";
else
{
fwrite($fp, $headers);
$end = false;
while (!$end)
{
$line = fgets($fp, 1024);
if (trim($line) == "") $end = true;
else $out[] = $line;
}
fclose($fp);
print_r($out);
}

у тебя что то вроде только меняешь Host на свой и то что после GET на /image.gif?aaa=параметр

В овтет этот скрипт вернул
Array
(
    [0] => HTTP/1.1 302 Redirect

    [1] => Connection: Close

    [2] => Cache-Control: no-cache

    [3] => Location: http://forum.ishodniki.ru/

)

Собственно как видишь идет ответ
HTTP/1.1 302 Redirect
и то что тебе надо - настоящая ссылка, т.е. куда переходить
Location: http://forum.ishodniki.ru/
Помощь в программировани и различные статьи
http://libcoder.blogspot.com/

Оффлайн Gair

  • Коллежский регистратор
  • *
  • Сообщений: 11
  • Репутация: 0
  • Пол: Мужской
  • SkypeID: grafgair
Re: Как получить url... из url )
« Ответ #4 : ёоЭм 20, 2009, 07:57:24 pm »
Большое спасибо, буду пробовать ) Меня смущает только строка 2. в первом блоке кода... что это?

Оффлайн Правдоруб

  • Губернский секретарь
  • **
  • Сообщений: 24
  • Репутация: 1
Re: Как получить url... из url )
« Ответ #5 : ёоЭм 20, 2009, 08:28:27 pm »
Veliant, забыл про возможный редирект в jscript. Т.е. парсить нужно и его в принципе, что сложно (может делаться переход на основе какой-то вычисляемой схемы).

Оффлайн Gair

  • Коллежский регистратор
  • *
  • Сообщений: 11
  • Репутация: 0
  • Пол: Мужской
  • SkypeID: grafgair
Re: Как получить url... из url )
« Ответ #6 : ёоЭм 20, 2009, 08:31:50 pm »
2Правдоруб, Хм, что уж там... http://status.icq.com/online.gif?icq=_номер аськи_&img=26
Хотел привинтить проверялку статуса в асе...

Оффлайн Veliant

  • Надворный советник
  • *****
  • Сообщений: 331
  • Репутация: 7
  • Пол: Мужской
Re: Как получить url... из url )
« Ответ #7 : ёоЭм 20, 2009, 09:50:43 pm »
Большое спасибо, буду пробовать ) Меня смущает только строка 2. в первом блоке кода... что это?
В твоем случае это так должно выглядеть
$headers = "GET /online.gif?icq=_номер аськи_&img=26\r\n";
Помощь в программировани и различные статьи
http://libcoder.blogspot.com/