はい、違いがあります。ブラウザは追加のHTTP ヘッダーを大量に送信する傾向があります。両方から送信されたものは、おそらく同じ値を持っていません。
ここで、いくつかのテストを行った後、呼び出された HTTP ヘッダーを渡すAccept
必要があるようです。
これは、 の 3 番目のパラメータを使用して、file_get_contents
追加のコンテキスト情報を指定することで実行できます。
$opts = array('http' =>
array(
'method' => 'GET',
//'user_agent ' => "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100301 Ubuntu/9.10 (karmic) Firefox/3.6",
'header' => array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8
'
),
)
);
$context = stream_context_create($opts);
$f = file_get_contents("http://mobile.mybustracker.co.uk/mobile.php?searchMode=2", false, $context);
echo $f;
これで、ページの HTML コードを取得できます。
ノート :
- 私は最初に を渡すことをテストしました
User-Agent
が、必要ではないようです-対応する行がコメントとしてここにあるのはそのためです
- ヘッダーに使用される値は、
Accept
を試す前に Firefox でそのページをリクエストしたときに Firefox が使用したものfile_get_contents
です。
- 他のいくつかの値は問題ないかもしれませんが、どの値が必要かを判断するためのテストは行っていません。
詳細については、以下を参照してください。