为file_get_contents分配主机选项

时间:2015-09-19 14:30:57

标签: php file-get-contents

我这里有点问题。所以我试图按file_get_contents访问一个页面并使用收到的数据。如果我不对正常访问选项添加任何更改,则可以正常使用"罚款"但是当我尝试为host函数添加stream_context_create选项时,它会显示错误。

所以脚本:

<?php
$opts = stream_context_create(array(
  'http'=> array(
    'method' => 'GET',
    'header'=> 'Host: "battlelog.battlefield.com"',
  )
));
$url = "http://battlelog.battlefield.com/bf4/soldier/Feirell/detailedstats/382046730/1/";
echo file_get_contents($url, NULL, $opts);
?>

错误:

Warning: file_get_contents(http://battlelog.battlefield.com/bf4/soldier/Feirell/detailedstats/382046730/1/): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

但我需要host选项才能正确显示所需的内容,因为假设某些内容资源位于php服务器上,而不是#34; battlelog.battlefield.com&#34;服务器

那么有人可以帮我正确分配这个选项吗?

1 个答案:

答案 0 :(得分:0)

好的,我想我明白了。您的主机标头中有双引号,这是无效的。试试这个:

$opts = stream_context_create(array(
    'http'=> array(
        'method' => 'GET',
        'header'=> 'Host: battlelog.battlefield.com',
    )
));

或尝试完全删除Host标头。我不明白为什么需要它。