php如何通过get_headers获取远程资源的响应头信息?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文描述如何通过php
的get_headers()
函数,来获得远程资源的响应头信息,重点是【响应头】。

大家好,这里是苏南大叔的网络自留地,想写啥就写啥。远程资源的响应头里面,也有隐藏的信息。所以,读取出来也是有意义的。测试环境:win10
,nginx@1.5.11
,php@7.4.29nts
。
函数说明
get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。返回包含有服务器响应一个 HTTP 请求所发送标头的索引或关联数组,如果失败则返回 false。
- $url,目标 URL。
- $format,如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。
get_headers($url)
在服务器端去请求别人的资源,别人的资源也是会发送给你相关头信息的。这里使用了一个get_headers
函数。但是这个函数有个问题,默认只能获得get
请求的header
头。

这里需要说明的是:访问https
资源的时候,需要开启openssl
扩展。参考文章:
get_headers($url,1) 【推荐】
get_headers($url, 1)
的第二个参数,设置为1
的话,返回值就会有所不同,是解析出键名的,这个操作很奇怪。

stream_context_set_default()
因为get_headers()
默认是使用get
进行请求的,所以,如果使用其它的method
的话,或者有附加的请求头信息的话,可以预先定义stream_context
。参考说明文档:
修改资源请求方法为head
,并自定义一些header
请求信息。测试代码如下:

远程服务器的测试代码,用于回显定制信息:
相关文章
总结
本文描述的是获得远程资源的头信息,更多php
经验文章,请点击:


