заинтересовал скрипт по расшифровке коротких ссылок Есть ссылка, например: http://langamepp.com/chtst/DAFB5E48618B4D60DB8B69822BB7DB74EBC36A7F50BD3141E9A3B93CFB0B0AF50A41771313FE250CA8D6 И она отсылается на http://live-gtrkomsk.cdnvideo.ru/gtrkomsk/gtrkomsk.sdp/playlist.m3u8 Интересует как получить ссылку на которую она ссылается. Нашел онлайн сервис http://backlinks-checker.dimax.biz/tools/rasshifrovka-korotkih-ssilok.php Интересует как работает скрипт? Зарание спасибо.
Как это работает в браузере (к чему вы привыкли):
Редирект осуществляется через 3xx коды
Поэтому нам нужна сетевая утилита, которая будет переходить последовательно по адресам до тех пор, пока не получит окончательную страницу.
Можно сделать через curl:
curl -sL --head http://langamepp.com/chtst/DAFB5E48618B4D60DB8B69822BB7DB74EBC36A7F50BD3141E9A3B93CFB0B0AF50A41771313FE250CA8D6 | grep Location
Получим
Location: http://langamepp.com/mnogoust.mp4
Немного про использованные опции:
-s подавляет вывод прогресс-бара-L следовать редиректам-head - запрашиваем только заголовкиgrep Location - фильтрация по слову Location - это именно то, куда при 3xx коде идет переход.
Можно сделать и чисто средствами PHP, суть та же, курл там есть. Мне нравится более короткий вариант, который вызывает оболочку:
$uri = 'http://langamepp.com/chtst/DAFB5E48618B4D60DB8B69822BB7DB74EBC36A7F50BD3141E9A3B93CFB0B0AF50A41771313FE250CA8D6';
$cmd = sprintf('curl -sL --head %s | grep Location', escapeshellarg($uri));
$data = shell_exec($cmd);
echo $data;
Также есть ответ на enSO, там есть обработка варианта перехода через JavaScript
Продвижение своими сайтами как стратегия роста и независимости