<?php$url1='https://cache.yisu.com/upload/information/20200310/52/107771.jpg' //exists$url2='https://cache.yisu.com/upload/information/20200310/52/107776.jpg'; //not exists $get1=get_headers($url1);$get2=get_headers($url2);print_r($get1);print_r($get2);


返回结果:

Array(    [0] => HTTP/1.1 404 Not Found    [1] => Date: Tue, 14 Mar 2017 10:58:00 GMT    [2] => Server: Apache    [3] => Vary: User-Agent,Accept-Encoding    [4] => Connection: close    [5] => Content-Type: text/html)Array(    [0] => HTTP/1.1 200 OK    [1] => Date: Tue, 14 Mar 2017 10:58:00 GMT    [2] => Server: Apache    [3] => Last-Modified: Wed, 09 Nov 2016 08:57:06 GMT    [4] => ETag: "2162a05-13f5-540da70f97c80"    [5] => Accept-Ranges: bytes    [6] => Content-Length: 5109    [7] => Vary: User-Agent    [8] => Connection: close    [9] => Content-Type: p_w_picpath/png)可以看到返回的http状态信息组成的一维数组.且第一个数组单元为响应状态信息.


于是乎,通过获取到的状态码,用来判断远程资源是否存在。

$statusCode=substr($get1[0], 9, 3);if($statusCode == 200 || $statusCode == 304){    echo "It's exists."}else{    echo "It's not exists."}

这里需要注意get请求https时,需要关闭证书校验的问题