dポイントプレゼントキャンペーン実施中!

file_get_contents(url) で、サイトのHTMLを取り込むことは問題なくでき、そのサイトにリダイレクト(Locationヘッダ?)が設定されていると、ちゃんとリダイレクト先のHTMLを取得することができるのですが、リダイレクトされたことや、リダイレクト先URLは、どのようにすれば知ることができるでしょうか。

得られたHTMLはリダイレクト先の内容なのに、私が作ったプログラムが把握しているURLはリダイレクト元のアドレスなので、不整合が起きてしまい困っています。

ポインタで結構ですので教えていただけると幸いです。

A 回答 (2件)

ヘッダ情報が得られないと無理だと思います。


ソケット通信でヘッダ情報を取得すればLocationの場合にはヘッダに
HTTP/1.1 302 Found

Location: http://example.com/
が含まれるので判別できます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

file_get_contents の前にソケット通信でヘッダを取得してリダイレクトを検出することにしました。

お礼日時:2006/02/14 09:37

始めにget_headers()でヘッダを取得して、Locationヘッダが含まれていればLocationヘッダで指定されたURLからヘッダを取得し、Locationヘッダが含まれていなければそのURLからコンテンツを取得するようにすれば良いでしょう。



っていうか勝手にPHPのこととして回答しているんですが、PHPの話でいいんですよね?
PHPの質問ならPHPのカテゴリでするようにして下さいね。

参考URL:http://www.php.net/manual/ja/function.get-header …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

カテゴリについては、投稿後に間違いに気がつきましたが、修正できないようなので、申し訳ありません。

PHP4 のため get_headers() がなかったので、自前でヘッダを取得するようにし、リダイレクトを検出するようにしました。

お礼日時:2006/02/14 09:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!