get_headers() 是PHP系统级函数,get_headers函数可以返回服务器响应HTTP标头数组。如果失败则回到 FALSE,并发出一条 E_WARNING 级别的错误信息,我们可以利用这点去判断远程文件是否存在。
函数定义
1 | array get_headers ( string $url [, int $format = 0 ] ) |
参数
url 目标 URL
format 如果将可选的 format 参数设立为 1,则 get_headers() 可以解析适当的信息并设定数组的键名。
get_headers示例
示例代码:
1 2 3 4 5 | <?php $url = 'https://www.wdzzz.com/' ; print_r(get_headers( $url )); print_r(get_headers( $url ,1)); ?> |
返回数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | Array ( [0] => HTTP/1.1 200 OK [1] => Date : Sat, 29 May 2004 12:28:13 GMT [2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT [4] => ETag: "3f80f-1b6-3e1cb03b" [5] => Accept-Ranges: bytes [6] => Content-Length: 438 [7] => Connection: close [8] => Content-Type: text/html ) Array ( [0] => HTTP/1.1 200 OK [ Date ] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html ) |
加上判断的实战示例:
1 2 3 4 5 6 7 8 9 10 | <?php $url = "https://www.wdzzz.com/" ; $array = get_headers( $url ,1); if (preg_match( '/200/' , $array [0])){ echo "有效" ; print_r( $array ); } else { echo "失效" ; } ?> |