方法一:

==========================================

$baiduUrl = "http://www.baidu.com/link?url=LZE_J6a1AcieLlTzNxUZQVpe2trQ99zx1ls85ux8dXaGlFB3eiEm_Y6SJC1sNQf_";

file_get_contents($baiduUrl);

$responseInfo = $http_response_header;

print_r($responseInfo);

// 输出:

Array

(

[0] => HTTP/1.1 302 Found

[1] => Date: Fri, 27 Jun 2014 02:47:35 GMT

[2] => Server: Apache

[3] => Location: http://www.edeng.cn/s/chuna/

[4] => Cache-Control: max-age=86400

[5] => Expires: Sat, 28 Jun 2014 02:47:35 GMT

[6] => Content-Length: 212

[7] => Connection: Close

[8] => Content-Type: text/html; charset=iso-8859-1

[9] => HTTP/1.1 200 OK

[10] => Server: nginx/1.4.3

[11] => Date: Fri, 27 Jun 2014 02:47:35 GMT

[12] => Content-Type: text/html; charset=utf-8

[13] => Connection: close

[14] => Expires: Mon, 26 Jul 1997 05:00:00 GMT

[15] => Last-Modified: Fri, 27 Jun 2014 02:47:35 GMT

[16] => Cache-Control: no-store, no-cache, must-revalidate

[17] => Pragma: no-cache

[18] => Vary: User-Agent,Accept-Encoding

[19] => X-Cache: MISS from web1.edeng.cn

[20] => Via: 1.1 web1.edeng.cn:80 (squid)

)

遍历该数组即可得到相应的值。比如要想获得 Location 的值:

foreach ($responseInfo as $loop) {

if(strpos($loop, "Location") !== false){

$edengUrl = trim(substr($loop, 10));

print_r($edengUrl);

// 输出: http://www.edeng.cn/s/chuna/

}

}

方法二:

==========================================

function get_head($sUrl){

$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);

return $header;

}

如上面解析,我们可以成功获得到头信息:

HTTP/1.1 302 Found

Date: Fri, 27 Jun 2014 02:47:35 GMT

Server: Apache

Location: http://www.edeng.cn/s/chuna/

Cache-Control: max-age=86400

Expires: Sat, 28 Jun 2014 02:47:35 GMT

Connection: Keep-Alive

Content-Type: text/html; charset=iso-8859-1

这时候,如果我们想获得 Location  项的内容,可以先把上面头正文件按回车换行切割成数组,然后再遍历匹配,如:

$responseHead = post_head($baiduUrl);

$headArr = explode("\r\n", $responseHead);

foreach ($headArr as $loop) {

if(strpos($loop, "Location") !== false){

$edengUrl = trim(substr($loop, 10));

print_r($edengUrl);

// 输出: http://www.edeng.cn/s/chuna/

}

}

php 接口响应头处理,PHP--获取响应头(Response Header)方法相关推荐

  1. 转:PHP--获取响应头(Response Header)方法

    转:http://blog.sina.com.cn/s/blog_5f54f0be0102uvxu.html PHP--获取响应头(Response Header)方法 方法一: ========== ...

  2. linux用c++获取mac地址,网卡地址,网口地址,网卡序号ip地址,不使用 ioctl(sock, SIOCGIFCONF, ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取

    linux用c++获取mac地址,不使用 ioctl(sock, SIOCGIFCONF, &ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取 1.弃用 SIOCGIFCO ...

  3. 通达信交易接口api_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

  4. SpringBoot三种获取Request和Response的方法

    一.可以封装为静态方法. ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestCo ...

  5. Request_获取请求头数据

    获取请求头数据             * 方法:                 * (*)String getHeader(String name):通过请求头的名称获取请求头的值        ...

  6. httpclient封装获取响应实体_Httpclient 接口自动化

    好久木写啦!!!好久木写啦!!! 心血来潮分享点小白的东西!!! 废话少说直接干货!!! 本文核心是将如何从数据驱动开始,以报告结尾的形式来实现"很多刚入行朋友们"所需要的接口自动 ...

  7. 使用fetch()获取响应头的content-disposition拿到文件名,下载Excel文件

    需求就是下载一个Excel文件,包括下载,导出,都是调用后端的接口.因为文件名返回再了响应头的content-disposition.前端需要进行一个处理,拿到文件名. 先上代码 downloadDe ...

  8. python构造响应头_Python爬虫库requests获取响应内容、响应状态码、响应头

    首先在程序中引入Requests模块 import requests 一.获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 ...

  9. php获取curl头_php中CURL请求头和响应头获取方法

    本文主要和大家分享php中CURL请求头和响应头获取方法,希望能帮助到大家. 1.从CURL中获取响应头$oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网 ...

最新文章

  1. 55 岁中国芯片首富,捐出 200 亿:建一所理工大学
  2. openstack之neutron linuxbridge + vlan组网
  3. 如何查看numpy库数组的:类型、数据类型、尺寸、形状、维度? (type、dtype、size、shape、ndim)
  4. 文件共享服务器连接数问题,共享服务器上连接数量的设置
  5. C语言实用算法系列之行指针
  6. Docker学习总结(27)——Dockerfile详解
  7. 创业圣经《从0到1》读书笔记合集
  8. python绘制四边形,三角形图形案例
  9. 蓝牙相关学习:5.BLE协议属性协议层(ATT)
  10. 面试技巧 16个经典面试问题回答思路
  11. pythonBBS问答社区程序源码加文档加说明
  12. spring MVC之Annotated Controllers
  13. 带着孩子学数学--经验总结1:乘法怎么教,小学数学阶段等等
  14. C语言调用动态共享库
  15. uiautomator2+python实现企业微信自动打卡
  16. 英语学习网站超级大全
  17. goods购物表MySQL的代码_第一节:数据库及表
  18. python 黑魔法_Python “黑魔法” 之 Meta Classes
  19. springboot高校学习资源共享系统java
  20. swfobject.js 详细解说

热门文章

  1. 遇到公司共享文件夹,打不开时的处理方式
  2. 正则表达式在线生成工具txt2re
  3. esp8266点灯科技arduino
  4. js常用鼠标事件和键盘事件
  5. 专访世纪证券CIO王育峰:证券行业数智化转型升级需实现可行性与必要性、成本与效益的统一...
  6. halcon第二十三讲:标定助手标定测量
  7. 799元起魅族V8为何成黄章眼中国际爆款?网友:买贵的版本更值
  8. 奖iPhone6:渣打银行金融市场软件开发部(中国)“Mini Code Marathon”大赛
  9. 上海软星仙剑开发组解散真正内幕(转载)
  10. Matrix67|自由职业者,数学爱好者