get_headers()是PHP中一个系统级函数,他可以返回一个包含有服务器响应一个HTTP请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。
PHP get_headers()函数的定义与语法
get_headers():可以通过服务器的响应头来判断远程文件是否存在
语法:
array get_headers ( string $url [, int $format = 0 ] )
参数:
format 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名,如果设置默认为0
get_headers()举例
PHP判断一个网站是否可以访问
例1:
<?php var_dump( get_headers('https://www.feiniaomy.com')); ?>
返回结果:
Array ( [0] => HTTP/1.1 200 OK [1] => Server: Tengine [2] => Content-Type: text/html; charset=utf-8 [3] => Connection: close [4] => Vary: Accept-Encoding [5] => Date: Wed, 15 May 2019 03:00:39 GMT [6] => Vary: Accept-Encoding [7] => X-Powered-By: PHP/7.2.11 [8] => Product: Z-BlogPHP 1.5.2 Zero [9] => X-XSS-Protection: 1; mode=block [10] => Upgrade-Insecure-Requests: 1 [11] => Ali-Swift-Global-Savetime: 1557889239 [12] => Via: cache4.l2eu6-1[68,200-0,M], cache28.l2eu6-1[70,0], kunlun9.cn547[153,200-0,M], kunlun10.cn547[157,0] [13] => X-Cache: MISS TCP_MISS dirn:-2:-2 [14] => X-Swift-SaveTime: Wed, 15 May 2019 03:00:39 GMT [15] => X-Swift-CacheTime: 0 [16] => Timing-Allow-Origin: * [17] => EagleId: db939d1e15578892393137219e )
注意:以上示例get_headers()函数没有设置参数,所以返回的数组中键值都是默认的。
例2:
<?php print_r( get_headers('https://www.feiniaomy.com',1)); ?>
返回结果:
Array ( [0] => HTTP/1.1 200 OK [Server] => Tengine [Content-Type] => text/html; charset=utf-8 [Connection] => close [Vary] => Array ( [0] => Accept-Encoding [1] => Accept-Encoding ) [Date] => Wed, 15 May 2019 03:03:16 GMT [X-Powered-By] => PHP/7.2.11 [Product] => Z-BlogPHP 1.5.2 Zero [X-XSS-Protection] => 1; mode=block [Upgrade-Insecure-Requests] => 1 [Ali-Swift-Global-Savetime] => 1557889396 [Via] => cache4.l2eu6-1[81,200-0,M], cache24.l2eu6-1[83,0], kunlun9.cn547[124,200-0,M], kunlun7.cn547[128,0] [X-Cache] => MISS TCP_MISS dirn:-2:-2 [X-Swift-SaveTime] => Wed, 15 May 2019 03:03:16 GMT [X-Swift-CacheTime] => 0 [Timing-Allow-Origin] => * [EagleId] => db939d1b15578893967421125e )
PS:本示例调用get_headers()函数时,设置了他的参数为1,返回的结果数组中,会解析相应的信息并设定数组的键名。
PHP判断远程图片是否存在
通过以上的示例的返回结果,我们可以通过返回数组中的第一个值来判断一个远程的页面或远程的图片是否可以访问
代码:
<?php $arr = get_headers('https://www.feiniaomy.com/zb_users/upload/Mochu_Feiniao/logo.png', 1); if(!(stristr($arr[0], "200") && stristr($arr[0], "OK"))) { echo '图片不存在'; }else{ echo '图片存在'; } ?> 执行结果:图片存在
上面的示例是判断一个远程的图片是否可以访问,当然你也可以把图片的地址换成网站的url地址,同样可以做出判断
到此这篇关于php中get_headers()函数介绍以及用法就介绍到这了。有时候日子会很难捱的,像头顶乌云行走,无论奔跑、蹲下、闪躲,都没有阳光。但是人生需要自带,坚定不移地认为一切都会好,心灰了,就什么都好不了了。天上有光,会照你身上,你心里有光,就会照在天上。更多相关php中get_headers()函数介绍以及用法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!