https://www.google.comの短縮URLを作成しました。
変換されたリンクについて短縮するために URL 短縮サービスを使用しました
短縮リンクをクリックすると、https://www.google.comにリダイレクトされます。
上記の場合、Google.com にリダイレクトせずに PHP を使用して短縮リンクから最終リンクを知るにはどうすればよいですか?
PHPを使用して元/最終リンクに移動せずにリダイレクト数(再帰短縮URLの場合)を取得するにはどうすればよいですか?
https://www.google.comの短縮URLを作成しました。
変換されたリンクについて短縮するために URL 短縮サービスを使用しました
短縮リンクをクリックすると、https://www.google.comにリダイレクトされます。
上記の場合、Google.com にリダイレクトせずに PHP を使用して短縮リンクから最終リンクを知るにはどうすればよいですか?
PHPを使用して元/最終リンクに移動せずにリダイレクト数(再帰短縮URLの場合)を取得するにはどうすればよいですか?
さらに簡単な解決策は、ヘッダーのみを取得するようにカールを設定し(body を無視)、場所をたどることです。関数を使用curl_getinfo()して最後の URL を取得し、いいえ。リダイレクトの数:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_NOBODY => true,
CURLOPT_FOLLOWLOCATION => true,
));
curl_exec($ch);
$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$redirect_count = curl_getinfo($ch, CURLINFO_REDIRECT_COUNT);
curl_close($ch);
これで変数ができました:
$last_url= リダイレクト ループの最後の URL$redirect_count= いいえ。発生したリダイレクトの取得できる他の優れたcurl_getinfo()パラメーターを見てみましょう。
ps に設定CURLOPT_HEADERしtrueて、何が起こっているかを正確に確認できます。
301 以外の応答コードに到達するまで、HTTP 応答に従います。
次のように、HTTP 応答コードと次の URL を取得できます。
$http = curl_init($url);
$result = curl_exec($http);
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
$next_url = curl_getinfo($http, CURLINFO_REDIRECT_URL);
curl_close($http);
echo $http_status;
echo $next_url;