PHP CURL请求自定义标头

时间:2016-08-24 10:48:14

标签: php curl

服务器的响应包含自定义标题" errcode":

var clientsRoom = io.sockets.sockets;

for (var id in clientsRoom) {
  var c = clientsRoom[id];
  console.log(" Client: " + c.userId);
  console.log(" Client: " + id);
}

如何使用PHP + CURL" errcode"值?

Date: Wed, 24 Aug 2016 09:06:04 GMT
errcode: 1
Server: nginx/1.8.1
Connection: keep-alive
Transfer-Encoding: chunked

401 Unauthorized

1 个答案:

答案 0 :(得分:0)

cURL具有内置功能,可将响应的每个标头传递给回调函数。您需要使用选项CURLOPT_HEADERFUNCTION

curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $header) {
    echo(trim($header) . PHP_EOL);
    return strlen($header);
});

或者,如果您不想使用匿名函数作为回调,您可以定义一个函数并将其名称作为字符串参数提供。该函数接受两个参数 - 第一个是cURL资源本身,第二个是当前头。

NB :该功能执行一次每个标头,因此您可能希望将结果存储在某个位置,数组或文件中,然后搜索该文件errcode标题的内容。

NB2 :函数必须返回传递标头的长度(请注意return strlen($header);)。否则cURL会中断。