Будет ли файл_get_contents неудачным изящно?

Мне нужно, чтобы file_get_contents были отказоустойчивы, как если бы, если $url поданный ему, возвращает 404 , чтобы рассказать мне об этом, прежде чем он выберет предупреждение. Это можно сделать?

Любая функция, использующая HTTP-обертку для доступа к удаленному файлу, как если бы она была локальной, автоматически генерирует локальную переменную с именем $http_response_header в локальной области. Вы можете получить доступ к этой переменной, чтобы найти информацию о том, что произошло при вызове fopen , file_get_contents … в удаленном файле.

Вы можете подавить предупреждение, используя @ : @file_get_contents .

Если вас не волнует ошибка, вы можете использовать @file_get_contents и сравнить результат с false :

 $content = @file_get_contents(url); if ($content === false) { /* failure */ } else { /* success */ } 

Вы можете выполнить дополнительный (HEAD) запрос, чтобы узнать сначала, например

 $response = get_headers($url); if($response[1] === 'HTTP/1.1 200 OK') { $content = file_get_contents($url); } 

Или вы можете сказать file_get_contents игнорировать любые ошибки и принудительно получить результат $url , изменив контекст потока:

 echo file_get_contents( 'http://www.example.com/foo.html', FALSE, stream_context_create(array('http'=>array('ignore_errors' => TRUE))) )