首页 文章

PHP cURL:读取特定的响应头

提问于
浏览
1

我在PHP中使用cURL来POST到创建资源的 endpoints . 它返回201响应,其Location Headers 给出了创建的资源的URL . 我还在回复正文中得到了一些信息 .

获取响应的纯文本正文的最佳方法是什么,并获取位置 Headers 的值? curl_getinfo不会返回该标头,当我这样做时:

curl_setopt($ch, CURLOPT_HEADERFUNCTION, function($ch, $header) {
        var_dump($header);
    });

我只看到一个标头被丢弃 - “HTTP / 1.1 201 Created”响应代码 .

1 回答

  • 4
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER,true);
    
    $result = curl_exec($ch);
    
    curl_close($ch);
    
    list($headers, $content) = explode("\r\n\r\n",$result,2);
    
    // Print header
    foreach (explode("\r\n",$headers) as $hdr)
        printf('<p>Header: %s</p>', $hdr);
    
    // Print Content
    echo $content;
    

相关问题