リダイレクトを仕込んでいるURLをPHPで読み込んで、転送先のURLを知りたいという
非常に稀なニーズにあたりました。
以下のような形で、取ることができます。
要は、curlで、ページソースを読んでから、info[“url”]で取得するということです。
ヘッダー情報からとることもできます。この時はキーはurlではありません。
/**
* curlで転送先のURLを返す
*/
function now_url($url){
$option = [
CURLOPT_RETURNTRANSFER => true, // 文字列として返す
CURLOPT_TIMEOUT => 3000, // タイムアウト時間
CURLOPT_SSL_VERIFYPEER => false, // サーバ証明書の検証をしない
CURLOPT_USERAGENT => "ご自身のUSERAGENT情報が入るようにしてください。", // UserAgentを指定
CURLOPT_FOLLOWLOCATION => true, //以下はリダイレクト追加
CURLOPT_MAXREDIRS => 3, //
CURLOPT_AUTOREFERER => true, //
];
$ch = curl_init($url);
curl_setopt_array($ch, $option);
$body = curl_exec($ch);
$info = curl_getinfo($ch);
//セッションを終了する
curl_close($ch);
return $info["url"];
}