首頁 > 後端開發 > php教程 > 如何從 PHP 中的 cURL 請求中提取標頭和正文?

如何從 PHP 中的 cURL 請求中提取標頭和正文?

DDD
發布: 2024-12-20 01:07:17
原創
438 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板