2015-01-10 140 views
0

我正在使用CURL和file_get_contents来找出页面的服务器请求和浏览器请求(有机)之间的基本区别。PHP发送的HTTP标头

我要求一个PHPINFO页面的两种方式,并发现它在不同情况下给出不同的输出。

例如,当我使用的是浏览器的PHPINFO表明这一点: _ SERVER [“HTTP_CACHE_CONTROL”]无缓存 当我通过PHP请求相同的页面此信息丢失。

我卷曲:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/phpinfo.php"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0"); 
    curl_setopt($ch, CURLOPT_INTERFACE, $testIP); 
    $output = curl_exec($ch); 
    curl_close($ch); 

我的file_get_contents:

$opts = array(
'socket' => array('bindto' => 'xxx.xx.xx.xx:0'), 
'method' => 'GET', 
'user_agent ' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0", // this doesn't work 
'header' => array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8') 
); 

我的目标: 为了使PHP请求看起来相同的浏览器请求。

+0

你为什么要你的请求看起来像浏览器请求? – Halcyon

+0

@Halcyon这是为了防止服务器以不同于常规浏览器请求的方式处理我的请求。 –

+0

好吧,假装我问你_'why?'_5次,然后决定这是否真的是你想要做的。 – Halcyon

回答