質問: file_get_contents($url); ``` とやっているのですが、https://www.google.com/search?tbs=...のページのHTMLが取得できません。 ### 試したこと ``` $header=get_headers('https://www.google.com/search?tbs=...'); ``` こちらのコードでリダイレクト先を調べたところ、どうやらsearchの部分がwebhpに変換されてしまっているようです。 どうやればリダイレクトを防いで、https://www.google.com/search?tbs=...こちらのHTMLを取得できるでしょうか。
回答: ちゃんとうまくいく保証はできません。 http_build_query() stream_context_create() file_get_contents() あたりを組み合わせればできるようになるかもしれない。 ふつうのサイト(静的htmlで構成されているとか)でできることを確認してから、 本番(?)したらトラブルの切り分けがしやすいかも。 先方のサーバーに提供するHTTPヘッダーに User-Agentを実在ブラウザの文字列を使ったり、 Cookieをなにか持たせたりとか工夫しないと、 天下のGoogle様を相手にはできない気がする。 下記、参考情報。 file_get_contents() で GET リクエストを送る場合の値は URL に持たせる | ウェブル HTTPリクエストのカスタマイズ | PHP プログラミング解説