Проверьте, является ли удаленный файл правильно сформированным XML с помощью PHP

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

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

TIA.

Примечание: будьте осторожны с терминологией. То, что вы описываете, звучит как «правильно сформированный» XML, что означает нечто иное, чем «действительный» XML.

cletus 14.01.2009 01:24

Совершенно верно cletus (спасибо) редактирую сейчас ...

da5id 14.01.2009 01:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
8
2
10 608
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте 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
}

Спасибо. Я уже использую что-то очень похожее на это, и именно этот скрипт часто выдает ошибку. Хотя я использую simplexml_load_file, будет ли разница с simplexml_load_string?

da5id 14.01.2009 01:25

У меня проблема с SimpleXML, и это очень странно. По-видимому, simplexml_load_file () из URL-адреса и simplexml_load_string () из cURL-результата URL-адреса могут получить другой результат. Один мог потерпеть неудачу, а другой мог работать ... Я не понимаю, как это произошло. Взглянем на мою функцию cURL сейчас

fred 28.03.2012 11:05

simplexml_load_string выдает предупреждения при просмотре html ... он не дает сбоев там, где должен

Alfonso Fernandez-Ocampo 23.08.2015 11:27

Другие вопросы по теме