如何在php中获取curl请求的请求头信息及相应头信息

如题所述

oCurl = curl_init();
// è®¾ç½®è¯·æ±‚头
$header[] = "Content-type: application/x-www-form-urlencoded";
$user_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36";
curl_setopt($oCurl, CURLOPT_URL, $sUrl);
curl_setopt($oCurl, CURLOPT_HTTPHEADER,$header);
// è¿”回 response_header, è¯¥é€‰é¡¹éžå¸¸é‡è¦,如果不为 true, åªä¼šèŽ·å¾—响应的正文
curl_setopt($oCurl, CURLOPT_HEADER, true);
// æ˜¯å¦ä¸éœ€è¦å“åº”的正文,为了节省带宽及时间,在只需要响应头的情况下可以不要正文
curl_setopt($oCurl, CURLOPT_NOBODY, true);
// ä½¿ç”¨ä¸Šé¢å®šä¹‰çš„ ua
curl_setopt($oCurl, CURLOPT_USERAGENT,$user_agent);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );

// ä¸ç”¨ POST æ–¹å¼è¯·æ±‚, æ„æ€å°±æ˜¯é€šè¿‡ GET è¯·æ±‚
curl_setopt($oCurl, CURLOPT_POST, false);

$sContent = curl_exec($oCurl);
// èŽ·å¾—响应结果里的:头大小
$headerSize = curl_getinfo($oCurl, CURLINFO_HEADER_SIZE);
// æ ¹æ®å¤´å¤§å°åŽ»èŽ·å–头信息内容
$header = substr($sContent, 0, $headerSize);
    
curl_close($oCurl);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-21
<?php
    $url        = 'http://demo.zjmainstay.cn';
    $ch  = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);        //返回头信息
    curl_setopt($ch, CURLOPT_NOBODY, true);        //不返回内容
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //返回数据不直接输出
    $content = curl_exec($ch);                    //执行并存储结果
    curl_close($ch);
    echo $content;
     
更多关于php cURL的内容,请参考http://www.zjmainstay.cn/php-curl

本回答被提问者采纳
第2个回答  2018-04-18

oCurl = curl_init();

// 设置请求头

$header[] = "Content-type: application/x-www-form-urlencoded";

$user_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36";

curl_setopt($oCurl, CURLOPT_URL, $sUrl);

curl_setopt($oCurl, CURLOPT_HTTPHEADER,$header);

// 返回 response_header, 该选项非常重要,如果不为 true, 只会获得响应的正文

curl_setopt($oCurl, CURLOPT_HEADER, true);

// 是否不需要响应的正文,为了节省带宽及时间,在只需要响应头的情况下可以不要正文

curl_setopt($oCurl, CURLOPT_NOBODY, true);

// 使用上面定义的 uacurl_setopt($oCurl, CURLOPT_USERAGENT,$user_agent);curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 ); 

// 不用 POST 方式请求, 意思就是通过 GET 请求

curl_setopt($oCurl, CURLOPT_POST, false); $sContent = curl_exec($oCurl);

// 获得响应结果里的:头大小

$headerSize = curl_getinfo($oCurl, CURLINFO_HEADER_SIZE);

// 根据头大小去获取头信息内容

$header = substr($sContent, 0, $headerSize);     

curl_close($oCurl);

本回答被网友采纳