10

URL が groovy および perl からリダイレクトされるかどうかの検出について誰かが質問しているのを見ましたが、PHP では何も見つかりませんでした。

これを行うコードを見つけることができる場所を知っている人はいますか?

4

3 に答える 3

16
$ch = curl_init('http://www.yahoo.com/');
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (($code == 301) || ($code == 302)) {
  //This was a redirect
}
于 2009-01-09T06:11:13.917 に答える
6

実際、これが最もうまくいくことがわかりました:

    function GetURL($URL)
    {
            $ch = curl_init($URL);

            curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);


            curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

            curl_exec($ch);

            $code = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

            curl_close($ch);

            return $code;
    }
于 2009-01-26T21:16:37.487 に答える
3

この質問に対して通常与えられる回答は、返されたドキュメント内でエンコードされた JavaScript (または HTML のメタリフレッシュ タグだと思います) によって引き起こされるリダイレクトを考慮していないことを覚えておいてください。この種のコードを使用してテストする場合、特定の種類の「リダイレクト」。

残念ながら、これを回避する唯一の方法は、実際の Web ブラウザで Web ページにアクセスし、JavaScript およびメタリフレッシュ リダイレクトを報告するように Web ブラウザを変更することです。

乾杯!

于 2009-01-26T21:22:48.270 に答える