Как я могу обработать предупреждение file_get_contents () функция в PHP?

290
задан lorem monkey 29 August 2013 в 02:05
поделиться

5 ответов

Шаг 1: проверьте код возврата: if($content === FALSE) { // handle error here... }

Шаг 2: подавите предупреждение путем помещения оператор контроля ошибок (т.е. @) перед вызовом к file_get_contents () : $content = @file_get_contents($site);

477
ответ дан Sᴀᴍ Onᴇᴌᴀ 23 November 2019 в 01:43
поделиться

Вот то, как я сделал это... Никакая потребность в блоке try-catch... Лучшее решение является всегда самым простым... Наслаждайтесь!

$content = @file_get_contents("http://www.google.com");
if (strpos($http_response_header[0], "200")) { 
   echo "SUCCESS";
} else { 
   echo "FAILED";
} 
14
ответ дан 23 November 2019 в 01:43
поделиться

Можно предварительно ожидать: $content = @file_get_contents($site);

Это подавит любое предупреждение - использование экономно! . См. Операторы Контроля ошибок

Редактирование: при удалении 'http://', Вы больше не ищете веб-страницу, но файл на Вашем диске, названном "www.google....."

33
ответ дан Greg 23 November 2019 в 01:43
поделиться

Лучшая вещь состояла бы в том, чтобы установить Вашу собственную ошибку и обработчики исключений, которые сделают что-то полезное как вход его в файле или пользовании электронной почтой критических. http://www.php.net/set_error_handler

4
ответ дан 23 November 2019 в 01:43
поделиться

Вы также можете установить свой обработчик ошибок как анонимная функция , которая вызывает исключение и использует 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();

Кажется, много кода для отлова одной маленькой ошибки, но если вы используете исключения во всем приложении, вам нужно будет сделать это только один раз, вверху (например, во включенном файле конфигурации), и все ваши ошибки будут преобразованы в исключения.

134
ответ дан 23 November 2019 в 01:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: