どうぞ:
function getRedirect($oldUrl) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $oldUrl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
$newUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
return $newUrl;
}
この関数はcURLを必要とし、を利用しCURLINO_EFFECTIVE_URL
ます。こちらのphpdocで調べることができます
編集:
oldUrlがjavascriptを介してnewUrlにリダイレクトしていないことが確実な場合は、次を使用してnewUrlの本体をフェッチすることを回避することもできます。
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body
実行を高速化するため$res = curl_exec($ch);
に、関数の前に上記の行を入れてください。getRedirect