PHP Curl 中如何分離headers 和body 信息
在PHP 中可以我們通過Curl 來獲取遠程網站的數據,同時可以獲取到HTTP Response 的headers 和body,它們會一同作為結果返回,這時需要我們自己來分離它們。
我們可以通過Curl自帶的curl_getinfo()
方法獲取頭的長度,然後使用substr
來分割字符串:
$url = "http://blog.wpjam.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE); //表示需要response header
curl_setopt($ch, CURLOPT_NOBODY, FALSE); //表示需要response body
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$body = substr($response, $header_size);
}