<?php
$url1='https://cache.tdyun.com/upload/information/20200310/52/107771.jpg' //exists
$url2='https://cache.tdyun.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时,需要关闭证书校验的问题