За последние 24 часа нас посетил 34721 программист и 1695 роботов. Сейчас ищут 890 программистов ...

Пропарсить ссылку-перенаправление

Тема в разделе "PHP для новичков", создана пользователем -Vladimir-, 12 янв 2011.

  1. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Есть ссылка-редирект типа http://сайт.ру/файл.php?id=84751266, которая при обращении к ней перенаправляет на файл http://сайт.ру/имя_файла.zip.

    Как из неё можно выдернуть прямую ссылку на файл?
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    будет трудновато если не знаешь что за двиг + скорее всего сами фалы хранятся под айдишниками и шифруются. т.е прямой ссылки можно и не получить)
     
  3. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Вы уверены, что там ПЕРЕНАПРАВЛЕНИЕ стоит? Или там всё-таки выдача файла напрямую по ссылке?
    Если перенаправление, то копайте CURL с опцией CURLOPT_HEADER TRUE
    Получайте заголовок и парсите его.
     
  4. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Примерно это:

    Код (Text):
    1. header('location:'.$url);
     
  5. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Если вы точно уверены, что там это, то перехватывайте заголовки и парсите их. Выдёргивайте новый адрес и смотрите не пересылает ли этот адрес ещё куда-то. Если не пересылает, значит это и есть конечная ссылка.

    CURLOPT_FOLLOWLOCATION FALSE позволит не переходить по новой ссылке, а именно получать заголовки только.