私は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. 特定の場所
- 2. タイプが定義されている場所を特定する
- 3. アップロードされたファイルを特定の場所に保存する
- 4. 特定の場所でSVG内でスケーリングされたSVG
- 5. wp_nav_menuが特定のテーマの場所で表示されない
- 6. CakePHP認証ログインが間違った場所にリダイレクトされる
- 7. Facebook APIが間違った場所にリダイレクトされる
- 8. ヘッダー( '場所:')はリダイレクトされません
- 9. 指定された場所のGoogleマップルート?
- 10. 指定されたサーバー/インスタンスの場所を特定するSQLエラー
- 11. PHP cURLリクエストがリダイレクトされない
- 12. 関数が実行された場所を特定しますか?
- 13. PHPで関数が呼び出された場所を特定します
- 14. チャネルファイルの場所は特定されていますか?
- 15. どのようにあなたが特定の場所
- 16. Wi Fiでの場所の特定
- 17. のpython - setup.pyコピーファイル、特定の場所へ
- 18. preg_matchが発生した場所を特定します
- 19. 場所が変更されたAndroidアップデートオーバーレイアイテム
- 20. Python - スクリプトの実行、場所特定エラー
- 21. 分度器特定の場所でダブルクリック
- 22. matplotlib twinx xticks特定の場所
- 23. は、特定の場所にある「ペア
- 24. コンテンツが既にエコーされた後、このヘッダーの場所がリダイレクトされるのはなぜですか?
- 25. 特定のURLが与えられたときにページがリダイレクトされない
- 26. 関数が返される場所をすばやく特定します
- 27. C#でFileSystemAccessRuleが継承されている場所を特定する
- 28. Googleマップ - 場所を特定するユーザー
- 29. 私の場所と場所のボタンが表示されない
- 30. htaccess特定の文字列がある場合のmod_rewriteのリダイレクト
ニース。これについて知りませんでした。カールオプションの数を考えると、カールオプションを見つけるのは必ずしも容易ではありません。ありがとう。 –