Шаг 1: проверьте код возврата: if($content === FALSE) { // handle error here... }
Шаг 2: подавите предупреждение путем помещения оператор контроля ошибок (т.е. @
) перед вызовом к file_get_contents () : $content = @file_get_contents($site);
Вот то, как я сделал это... Никакая потребность в блоке try-catch... Лучшее решение является всегда самым простым... Наслаждайтесь!
$content = @file_get_contents("http://www.google.com");
if (strpos($http_response_header[0], "200")) {
echo "SUCCESS";
} else {
echo "FAILED";
}
Можно предварительно ожидать: $content = @file_get_contents($site);
Это подавит любое предупреждение - использование экономно! . См. Операторы Контроля ошибок
Редактирование: при удалении 'http://', Вы больше не ищете веб-страницу, но файл на Вашем диске, названном "www.google....."
Лучшая вещь состояла бы в том, чтобы установить Вашу собственную ошибку и обработчики исключений, которые сделают что-то полезное как вход его в файле или пользовании электронной почтой критических. http://www.php.net/set_error_handler
Вы также можете установить свой обработчик ошибок как анонимная функция , которая вызывает исключение и использует try / catch для этого исключения.
set_error_handler(
function ($severity, $message, $file, $line) {
throw new ErrorException($message, $severity, $severity, $file, $line);
}
);
try {
file_get_contents('www.google.com');
}
catch (Exception $e) {
echo $e->getMessage();
}
restore_error_handler();
Кажется, много кода для отлова одной маленькой ошибки, но если вы используете исключения во всем приложении, вам нужно будет сделать это только один раз, вверху (например, во включенном файле конфигурации), и все ваши ошибки будут преобразованы в исключения.