leni_m
@leni_m
ЧупаКобрус

Как сделать проверку на загрузку xml файла?

Загружаю xml файл валют с помощью
$xml = simplexml_load_file('url из интернета');
$usd = (string)$xml->Valute[10]->Value;
$eur = (string)$xml->Valute[11]->Value;

Но когда нет соединения с интернетом выводится ошибка
Warning: simplexml_load_file(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/leni_m/www/lk.local/public_html/views/template/header.php on line 2

Warning: simplexml_load_file(url из интернета): failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/leni_m/www/lk.local/public_html/views/template/header.php on line 2

Warning: simplexml_load_file(): I/O warning : failed to load external entity "url из интернета" in /home/leni_m/www/lk.local/public_html/views/template/header.php on line 2

Как можно избежать вывода ошибки?
P.S. Самая первая строка почему-то возвращает ошибку, а не false
$xml = simplexml_load_file('url из интернета');
  • Вопрос задан
  • 571 просмотр
Решения вопроса 3
samoilenkoevgeniy
@samoilenkoevgeniy
Lead Full-Stack Web Developer
Try {
// do something
} catch(\Exception $e) {
// catch something
}

Try catch
Ответ написан
Комментировать
@zRrr
Это всего лишь предупреждения, которые говорят, что они не могут открыть поток из-за отсутствия интернет соединения. Можно их убрать с помощью: "error_reporting(~E_WARNING);".
Ответ написан
Stalker_RED
@Stalker_RED
Если "избежать вывода ошибки" это значит "ну и пофиг, что не работает, главное что ошибку не видно" то вот простейший способ:
$xml = @simplexml_load_file('url из интернета');
if (!$xml) die ('ой всё!');
И добро пожаловать в ряды быдлокодеров.

А по хорошему, try ... catch и последующая обработка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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