是的,有差異 - 瀏覽器往往會發送大量額外的HTTP headers,我會說;並且由兩者發送的那些可能不具有相同的值。
這裏,在做了一些測試之後,似乎需要傳遞名爲Accept
的HTTP標頭。
這可以使用的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
。
- 其他一些值可能是好的,但我沒有做任何測試來確定哪個值是必需的。
欲瞭解更多信息,你可以看看: