Я использую file_get_contents
, чтобы получить заголовки внешней страницы, чтобы определить, находится ли внешняя страница в сети следующим образом:
$URL = "http://page.location/";
$Context = stream_context_create(array(
'http' => array(
'method' => 'GET',
)
));
file_get_contents($URL, false, $Context);
$ResponseHeaders = $http_response_header;
$header = substr($ResponseHeaders[0], 9, 3);
if($header[0] == "5" || $header[0] == "4"){
//do stuff
}
Это работает хорошо, за исключением случаев, когда страница слишком долго реагирует.
Как установить тайм-аут?
Будет ли file_get_headers
возвращать FALSE, если он еще не завершен, и перейдет ли PHP к следующей строке, если он не завершил запрос file_get_contents
?