是的,有差异 - 浏览器往往会发送大量额外的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
。
- 其他一些值可能是好的,但我没有做任何测试来确定哪个值是必需的。
欲了解更多信息,你可以看看: