Избегание ошибок при попытке загрузить недоступный файл

Используя php, я хочу загрузить XML-файлы с нескольких сайтов и хочу предотвратить ошибки, если мой один из сайтов не работает. Я использую этот код для доступа к URL.

function get_xml($url){ $xmlDoc = new DOMDocument(); $xmlDoc->load($url); // This is the line causing errors $channel=$xmlDoc->getElementsByTagName('channel')->item(0); ... 

Если в корневом URL-адресе нет XML-канала, я получаю много сообщений об ошибках, таких как:

Предупреждение: DOMDocument :: load (): требуется место после публичного идентификатора

Предупреждение: DOMDocument :: load (): SystemLiteral "или" ожидается

Предупреждение: DOMDocument :: load (): SYSTEM или PUBLIC, отсутствует URI

    Предупреждение: DOMDocument :: load (): несоответствие открытия и окончания тегов: линия ссылок 5 и глава

    Что я могу сделать, чтобы предотвратить попытку загрузки $ url, если канал недоступен? Я пробовал:

     if(file_exists($url)){ $xmlDoc->load('$url'); } 

    И вещи с fopen и @load, но я вполне мог использовать их неправильно.

    Related of "Избегание ошибок при попытке загрузить недоступный файл"

    Попробуйте:

     if (!@$xmlDoc->load($url)){ return FALSE; } 

    Ваша функция get_xml немедленно вернется FALSE если load метода не загружает данные XML

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

    Я особенно задумываюсь о libxml_use_internal_errors() :

    libxml_use_internal_errors() позволяет отключить стандартные ошибки libxml и включить обработку ошибок пользователя.

    1. libxml – библиотека, использующая внутренне DOMDocument – и SimpleXML , SimpleXML