Как определить, перенаправляется ли URL-адрес в PHP?

StackOverflow https://stackoverflow.com/questions/427203

  •  06-07-2019
  •  | 
  •  

Вопрос

Я видел, как кто-то задал вопрос об обнаружении перенаправления URL-адреса с groovy и perl, но не смог найти ничего на PHP.

Кто-нибудь знает, где я мог бы найти этот код, который делает это?

Это было полезно?

Решение 2

На самом деле, я нашел, что это работает лучше всего:

    function GetURL($URL)
    {
            $ch = curl_init($URL);

            curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);


            curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

            curl_exec($ch);

            $code = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

            curl_close($ch);

            return $code;
    }

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

$ch = curl_init('http://www.yahoo.com/');
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (($code == 301) || ($code == 302)) {
  //This was a redirect
}

Помните, что ни один из ответов, которые обычно даются на этот вопрос, не учитывает перенаправление, вызванное javascript, закодированным в возвращаемом документе (или, я думаю, тег метаобновления в HTML). Так что вполне возможно, что независимо от того, что вы пропустите определенные виды «перенаправлений» при тестировании с использованием такого рода кода.

К сожалению, единственный способ обойти это - заставить настоящий веб-браузер открыть веб-страницу и изменить веб-браузер таким образом, чтобы он сообщал о перенаправлениях javascript и метаобновления.

Ваше здоровье!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top