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

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

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

$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 } 

Фактически, я нашел, что это работает лучше всего:

  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; } 

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

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

Ура!