首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP file_get_contents()和设置请求头

PHP file_get_contents()和设置请求头
EN

Stack Overflow用户
提问于 2010-01-21 16:13:42
回答 7查看 203.1K关注 0票数 132

在PHP中,有没有可能用file_get_contents()发送HTTP头?

我知道您可以从php.ini文件中发送用户代理。但是,您还可以使用file_get_contents()发送HTTP_ACCEPTHTTP_ACCEPT_LANGUAGEHTTP_CONNECTION等其他信息吗?

或者,有没有其他函数可以实现这一点?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-01-21 16:22:29

实际上,在进一步阅读file_get_contents()函数时:

代码语言:javascript
复制
// Create a stream
$opts = [
    "http" => [
        "method" => "GET",
        "header" => "Accept-language: en\r\n" .
            "Cookie: foo=bar\r\n"
    ]
];

// DOCS: https://www.php.net/manual/en/function.stream-context-create.php
$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
// DOCS: https://www.php.net/manual/en/function.file-get-contents.php
$file = file_get_contents('http://www.example.com/', false, $context);

你也许能够遵循这个模式来实现你所寻求的目标,但我还没有亲自测试过。(如果它不起作用,请随时查看我的另一个答案)

票数 344
EN

Stack Overflow用户

发布于 2012-12-20 17:44:05

以下是对我有效的方法(Dominic只少了一行)。

代码语言:javascript
复制
$url = "";

$options = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n" .  // check function.stream-context-create on php.net
              "User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n" // i.e. An iPad 
  )
);

$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
票数 99
EN

Stack Overflow用户

发布于 2012-03-12 18:14:02

您可以使用此变量在file_get_contents()函数之后检索响应头部。

代码:

代码语言:javascript
复制
  file_get_contents("http://example.com");
  var_dump($http_response_header);

输出:

代码语言:javascript
复制
array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
}
票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2107759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档