首页 >后端开发 >php教程 >如何从 PHP 中的 cURL 请求中提取标头和正文?

如何从 PHP 中的 cURL 请求中提取标头和正文?

DDD
DDD原创
2024-12-20 01:07:17443浏览

How Can I Extract Both Headers and Body from a cURL Request in PHP?

在 PHP 中从 cURL 请求中提取标头和正文

PHP cURL 库提供了一种发送 HTTP 请求的便捷方法。默认情况下,cURL 仅获取响应正文。但是,您可能会遇到需要在单个请求中同时访问 headers 和 body 的情况,而不发出单独的 HEAD 请求。

解决方案:分离 headers 和 body

要在单个 cURL 请求中检索标头和正文,您可以使用以下命令步骤:

  1. 使用curl_exec()使用以下选项执行cURL请求:

    • CURLOPT_RETURNTRANSFER:设置为1以字符串形式返回响应。
    • CURLOPT_HEADER:设置为 1 以将响应标头包含在输出。
  2. 执行请求后,使用$response获取响应。
  3. 使用curl_getinfo($ch, CURLINFO_HEADER_SIZE)计算HTTP标头的大小并存储它在 $header_size.
  4. 通过采用以下方式从 $response 中提取标头子字符串最大为 $header_size。将标头存储在 $header 中。
  5. 通过从 $header_size 到字符串末尾获取子字符串,从 $response 中提取正文。将主体存储在 $body 中。

示例代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// ...

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

注意:请注意,此方法可能不可用在所有情况下都是可靠的,特别是在处理代理服务器或某些类型的重定向时。

以上是如何从 PHP 中的 cURL 请求中提取标头和正文?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn