PHP Follow URL Redirect

Как я могу получить конечный целевой URL для URL короткой ссылки Airbnb в PHP? (например, https://abnb.me/Vt3MA7vVyM)

Используя этот инструмент, я вижу, что ссылка перенаправляется три раза PHP Follow URL Redirect

Возможный дубликат Перенаправление трассировки PHP

Slavik Meltser 01.05.2018 13:28

Это не дубликат, решение «Перенаправление трассировки PHP» не дает правильный URL.

Syscall 01.05.2018 13:42

@Syscall да, потому что перенаправления js не обрабатываются в curl afaik

Mehravish Temkar 01.05.2018 13:45

Справа @MehravishTemkar.

Syscall 01.05.2018 13:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
4
461
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

file_get_contents() следует перенаправлениям, определенным в ответе HTTP. Но в JavaScript есть перенаправление с использованием window.top.location. Итак, вы можете разобрать его с помощью strpos() и простого preg_match():

$url = 'https://abnb.me/Vt3MA7vVyM';
$ret = file_get_contents($url);
$pos = strpos($ret, 'window.top.location');
if ($pos !== false) {
    $str = substr($ret, $pos);
    $str = preg_match('~validate\("([^"]*)~', $str, $matches);
    echo html_entity_decode($matches[1]);
}

Выход:

 https://airbnb.com/rooms/2110908?=&s=41&ref_device_id=43fb193006d0cb8848f689aec67ba15ae5c48471&user_id=10758532&_branch_match_id=519823851281523702

Другие вопросы по теме