Проверьте, является ли удаленный файл правильно сформированным XML с PHP - PullRequest
8 голосов
/ 14 января 2009

У меня есть сайт, управляемый PHP, который включает в себя XML-ленту новостей, которая удаленно обслуживается из ASP (то есть URL-адрес ленты XML имеет следующий порядок: http://remote.com/client.asp).

Поскольку канал часто недоступен (я имею в виду, что сайт возвращает ошибку ASP), я хотел бы проверить, является ли канал правильно сформированным XML, прежде чем включать его. Моя обычная функция url_exists не справляется с задачей, так как, конечно, URL существует даже при «ошибке».

ТИА.

1 Ответ

21 голосов
/ 14 января 2009

Используйте cURL для получения результата и simplexml , чтобы проверить, является ли XML правильно сформированным .

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://remote.com/client.asp");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
if (simplexml_load_string($output)) {
  // well-formed XML
} else {
  // it isn't
}
...