get_headers выдает странный ответ. И проверка ссылки на работоспособность
Есть такой код, на проверку сайта по заголовкам из ответа сервера на HTTP-запрос:
stream_context_set_default( [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
$httpsDomain = ('https://'.$domain);
function urlExists(string $httpsDomain): bool
{
return substr(get_headers($httpsDomain)[1], 9, 3) == 200;
}
$code = urlExists($httpsDomain);
if($code == true){
$status = "Сайт рабочий!";
}else{
$status = "Сайт не рабочий";
}
echo $status;?>
Вот что он выдает:
Array ( [0] => HTTP/1.0 301 Moved Permanently
[Location] => https://www.google.com/
[Content-Type] => Array (
[0] => text/html; charset=UTF-8
[1] => text/html; charset=ISO-8859-1 )
[Date] => Array (
[0] => Fri, 12 Jun 2020 16:18:40 GMT
[1] => Fri, 12Jun 2020 16:18:41 GMT )
[Expires] => Array (
[0] => Sun, 12 Jul 2020 16:18:40 GMT
[1] => -1 )
[Cache-Control] => Array (
[0] => public, max-age=2592000
[1] => private, max-age=0 )
[Server] => Array (
[0] => gws
[1] => gws )
[Content-Length] => 220 [X-XSS-Protection]=> Array (
[0] => 0
[1] => 0 )
[X-Frame-Options] => Array (
[0] => SAMEORIGIN
[1] => SAMEORIGIN )
[Alt-Svc] => Array (
[0] => h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443";ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" [1] => h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443";ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43" )
[1] => HTTP/1.0 200 OK
[P3P] => CP="This is not a P3P policy! See g.co/p3phelp for more info."
[Set-Cookie] => Array (
[0] => 1P_JAR=2020-06-12-16; expires=Sun,12-Jul-2020 16:18:41 GMT; path=/; domain=.google.com; Secure
[1] => NID=204=K_FN6o3u_CgHWGTrp7DbR-Xv328FsNzxmi_0WUTrB58Y4DOSaedkx5_RVs8JYw06BK5eHamoZ40-NvXKlvfgjTEsjS_Fim-ZOqzBOXMIABec4yXJJELRDxydfq-EiIkSnDV5KWyX9jJWqyVqGKULdKzqSlEIpJvna_8e-6y2PEs; expires=Sat,12-Dec-2020 16:18:41 GMT; path=/; domain=.google.com; HttpOnly )
[Accept-Ranges] => none
[Vary] => Accept-Encoding )
Тоесть сначала он выдает HTTP/1.0 301, а ниже HTTP/1.0 200 OK. И после этого скрипт выдает, что сайт не рабочий. Почему так и может быть есть способ проверки на работоспособность ссылки другими способами?