1. 程式人生 > 其它 >PHP cURL獲取HTTP響應頭

PHP cURL獲取HTTP響應頭

技術標籤:PHPphpcurl響應頭

平時做開發時,經常會用到PHP的cURL擴充套件,用於請求外部HTTP介面。大多數情況下,我們只需要獲取口返回的響應體(HTTP response body),但如果我們想獲取響應頭(HTTP response header)那可以怎麼做呢?

可惜的是,cURL擴充套件沒有提供原生的方法讓我們(以陣列的形式)直接獲取響應頭,只能通過稍微複雜一點的方法來獲取。

直接上程式碼:

<?php
function headerHandler($curl, $headerLine) {
    $len = strlen($headerLine);
    // HTTP響應頭是以:分隔key和value的
$split = explode(':', $headerLine, 2); if (count($split) > 1) { $key = trim($split[0]); $value = trim($split[1]); // 將響應頭的key和value存放在全域性變數裡 $GLOBALS['G_HEADER'][$key] = $value; } return $len; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.baidu.com"
); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADERFUNCTION, "headerHandler"); // 設定header處理函式 $responseBody = curl_exec($ch); curl_close($ch); var_dump($GLOBALS['G_HEADER']); // 以陣列形式列印響應頭 var_dump($responseBody); // 列印響應體

打印出來的百度返回的響應頭:
在這裡插入圖片描述