質問: 'https://example.com/example'; @$dom->loadHTML(mb_convert_encoding(file_get_contents($exampleURL), 'HTML-ENTITIES', 'UTF-8')); var_dump($dom->documentElement); ``` こちらの実装では、2のURLの中身(HTML)を取得時、B画面を取得してしまいます。 原因として1と2のリクエストが同一のセッションIDを持ってないために起こっていると思いますが、ここからの実装について調べてもよくわかりませんでした。 何かアドバイスしていただける方いませんでしょうか? どうぞよろしくお願いしますm(_ _)m
回答: `get_file_contents()`実行直後、PHP定義済み変数(www.php.net)$http_response_headerにレスポンスヘッダーが格納されているのでこれを取得し、必要な物(今回の場合はクッキーからセッションIDかな?)を取得してください。 今回の場合はcurlでアクセスされてますが、画面Aからのレスポンスから画面Bへ引き継ぐ必要があるものを取得されてませんね。 取得したセッションIDなどを、次の`file_get_contents()`の第3引数で適切に指定して下さい。 ブラウザを使用してのアクセスと異なり、自動でcookieなどを保存・送信してくれる分けてはないので、レスポンス・リクエストすべて必要な物を取得し送信時には送信しなければなりません。 以下にいろいろ情報があります (google.com)file_get_contents request header (google.com)file_get_contents response header