Как отловить редирект?

Тема в разделе "PHP", создана пользователем boctorg, 21 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. boctorg

    boctorg Прохожие

  2. myphpcoder

    myphpcoder Писатель

    Регистр.:
    20 окт 2008
    Сообщения:
    9
    Симпатии:
    1
    Смотря чем отлавиливать, к примеру скриптик на php написать, сделать запрос через curl, с параметром, чтобы по редиректам не ходил и вытащить требуемый урл из заголовка ответа сервера.
     
  3. boctorg

    boctorg Прохожие

    Да вот именно курлом, из заголовка , только как? :ah:
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    делаешь запрос и смотришь хиадер.
    Тебя интересует только Location

    не забудь в курле прописать curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false)); ;)
     
  5. boctorg

    boctorg Прохожие

    Заголовок получил , а как из него выдрать нужную строчку ?

    PHP:
    $unique_s 'Location: '
    $unique_e ' ';


    preg_match('/'.preg_quote($unique_s,'/').'(.*)'.preg_quote($unique_e'/').'/Us'$ret2$m100);

    echo 
    "ссылка = $m100[1]<br>"//ссылка
    так не получается :(
     
  6. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    preg_match('%Location: (.*?)%i'$ret2$match);
    echo(
    $match[1]);
     
  7. boctorg

    boctorg Прохожие

    PHP:

    <?php

    $ch 
    curl_init(); 

    $ret curl_setopt($chCURLOPT_URL,            "http://soft.mail.ru/Download.php?ver=3272");
    $ret curl_setopt($chCURLOPT_HEADER,         1);
    $ret curl_setopt($chCURLOPT_FOLLOWLOCATIONfalse);

    $ret2=curl_exec ($ch);

    preg_match('%Location: (.*?)%i'$ret2$match);

    echo(
    $match[1]); 

    ?>



    не хочет выводить отдельно урл ( Что не так?
     
  8. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    PHP:
    curl_setopt($chCURLINFO_HEADER_OUTtrue);
    curl_exec($ch);
    var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
     
  9. boctorg

    boctorg Прохожие


    А это куда вставить?
     
  10. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    <?php 

    $ch 
    curl_init("http://soft.mail.ru/Download.php?ver=3272");  
    curl_setopt($chCURLOPT_HEADER,         1); 
    curl_setopt($chCURLOPT_FOLLOWLOCATIONfalse); 
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    $ret2 curl_exec ($ch); 
    preg_match('%Location: (.+)%i'$ret2$match);
    echo(
    $match[1]);
    ?>
     
Статус темы:
Закрыта.