Как пропустить неверный запрос HTTP/1.1 400
Я загружаю несколько файлов XML из веб-службы, которая иногда не удается.
Я загружаю все эти XML-файлы и затем отображаю их в один XML-файл с использованием PHP+simpleXML. Проблема заключается в том, что если один XML-файл не работает, то весь мой последний XML-файл облажается, потому что я получаю HTTP/1.1 400 Bad Request.
Есть ли способ пропустить эту ошибку? Я попробовал код ниже, но он не работает для меня:
$xmlDetails = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOERROR | LIBXML_ERR_NONE | LIBXML_NOWARNING);
if ($xmlDetails)
{ here i manipulate the $xmlDetails }
1 ответ
Вы ожидаете, что XML вернется к успеху, верно? Поэтому проверьте ответ, чтобы увидеть, вернулось ли это.
$xmlDetails = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOERROR | LIBXML_ERR_NONE | LIBXML_NOWARNING);
if ($xmlDetails && substr(trim($xmlDetails), 0, 4) == "<?xml"))
{
// here i manipulate the $xmlDetails
}
Не проверено, но может быть достаточно чего-то простого. Я бы порекомендовал так же, как один из комментариев, хотя. Отдельное извлечение xml и анализ его в два этапа.