Iはリダイレクト(301、302)とadf.ly
などのような特殊なURLを迂回するためにカールを使用しています。私は、作業コードを持っているが、私はこの特定の問題解決ができませんでした:私はいくつかのウェブサイト上で、location
パラメータに従うようにcURLを使用している場合は、最後のリダイレクトがそのLocation:
結果で相対URLを有することができるcURLのは相対的な「場所」を返しますか?
を。
それを明確にするために、私は自分自身のウェブサイトでは、そのようなリダイレクトを追加しました。私はそれを実証するために私のPHPコードで
header("Location: /maintenance"); exit();
を使用しています。
$url = "http://deci.deals/post/99/comment/427";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1712.4 Safari/537.36');
curl_setopt($ch, CURLOPT_HEADER, 1);
$data = curl_exec($ch);
curl_close($ch);
echo("<br/>CURRENT_URL: ".$url);
if (preg_match_all('/Location:\s*(.+)\s*$/im', $data, $matches, PREG_SET_ORDER)) {
$last = array_pop($matches);
echo "<br/>FOUND: ".$last[1];
}
出力:
CURRENT_URL: http://deci.deals/post/99/comment/427
FOUND: /maintenance
はあなたが見ることができるように、Location
値は相対URLである私は、このクイックcURLの要求を行いました。これの代わりに絶対URLを取得する方法はありますか?
ありがとうございます!
エコーcurl_getinfo($ chを、CURLINFO_EFFECTIVE_URL)。 Robot70感謝@ – Robot70
! 'Location'の結果の代わりにこのURLを信頼するのは安全でしょうか? –
私は知らない。それはあなた次第です。 – Robot70