Вам необходимо настроить потоковую оболочку , чтобы игнорировать ошибки:
ignore_errors boolean
Извлекать содержимое даже по кодам состояния ошибок.По умолчанию FALSE
Другими словами, выполните
echo file_get_contents(
'http://stackoverflow.com/foo/bar',
false,
stream_context_create([
'http' => [
'ignore_errors' => true,
],
])
);
, и вы получите страницу 404.
Если вы хотите, чтобы это было поведение по умолчанию для потоков HTTP, используйте
stream_context_set_default(
array('http' => array(
'ignore_errors' => true)
)
);
Любые вызовы, использующие упаковщик потока HTTP, будут использовать эти настройки, например, вы можете просто сделать
echo file_get_contents('http://stackoverflow.com/foo/bar');
Если вы также хотите получить заголовок ответа , просто сделайте
print_r($http_response_header);
после вызова.Переменная заполняется после каждого вызова оболочкой потока http.