私はcurlを使ってどこかのWebサイトにhttpリクエストを送信し、リダイレクトに続くようにCURLOPT_FOLLOWLOCATIONを1に設定しています。どのようにして、それが最終的にリダイレクトされたかを知ることができますか?curlがリダイレクトされた場所の特定
5
A
答えて
6
あなたのような何かを行うことができます。
-1
あなたは、最終的なボディを必要としない場合は、この方法でそれを行うことができます。
設定CURLOPT_HEADER
とCURLOPT_NOBODY
を。ヘッダー "Location"が返され、新しいURLが含まれます。必要に応じて、新しいURLでリクエストを実行します。これはあなたが最終的にリダイレクトされたURLが表示されます
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // returns the last effective URL
2
$ch = curl_init("http://websitethatredirects.com");
$curlParams = array(
CURLOPT_FOLLOWLOCATION => true,
);
curl_setopt_array($ch, $curlParams);
$ret = curl_exec($ch);
$info = curl_getinfo($ch);
print $info['url'];
:
0
このコードをテストします。私にとってはうまくいく:
$urls = array(
'http://www.apple.com/imac',
'http://www.google.com/'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
foreach($urls as $url) {
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);
// line endings is the wonkiest piece of this whole thing
$out = str_replace("\r", "", $out);
// only look at the headers
$headers_end = strpos($out, "\n\n");
if($headers_end !== false) {
$out = substr($out, 0, $headers_end);
}
$headers = explode("\n", $out);
foreach($headers as $header) {
if(substr($header, 0, 10) == "Location: ") {
$target = substr($header, 10);
echo "[$url] redirects to [$target]<br>";
continue 2;
}
}
echo "[$url] does not redirect<br>";
}
関連する問題
- 1. PHP:ヘッダが指定された場所にリダイレクトされていません
- 2. アプリケーションが開始された場所を特定する
- 3. サインアップ後に特定の場所にリダイレクトされないようにする
- 4. 特定の場所
- 5. 特定の場所
- 6. 特定の場所
- 7. タイプが定義されている場所を特定する
- 8. 特定の場所でSVG内でスケーリングされたSVG
- 9. アップロードされたファイルを特定の場所に保存する
- 10. wp_nav_menuが特定のテーマの場所で表示されない
- 11. Facebook APIが間違った場所にリダイレクトされる
- 12. CakePHP認証ログインが間違った場所にリダイレクトされる
- 13. RedirectToActionが間違った場所にリダイレクトされる
- 14. ヘッダー( '場所:')はリダイレクトされません
- 15. 指定された場所のGoogleマップルート?
- 16. 特定の場所でトリガされた場合を除き、gdbウォッチポイント
- 17. 指定されたサーバー/インスタンスの場所を特定するSQLエラー
- 18. 相対パスのある場所のヘッダーがリダイレクトされない
- 19. 指定された場所にNgが生成されない
- 20. PHP cURLリクエストがリダイレクトされない
- 21. PHPで関数が呼び出された場所を特定します
- 22. 関数が実行された場所を特定しますか?
- 23. Angular2の特定の場所にロードされる動的コンポーネント
- 24. ヘッダーの場所がリダイレクトされないWORDPRESS
- 25. チャネルファイルの場所は特定されていますか?
- 26. 特定の場所を別のドメインのその場所にリダイレクトする方法はありますか?
- 27. Laravel - 場所を指定してリダイレクト
- 28. どのようにあなたが特定の場所
- 29. GoogleマップiOS SDK - 特定の場所の場所を検索
- 30. php curl特定のURLフォーマットの別のウェブサイトにリダイレクト
ニース。これについて知りませんでした。カールオプションの数を考えると、カールオプションを見つけるのは必ずしも容易ではありません。ありがとう。 –