искаженный XML, возвращаемый командной строкой curl

Я отправляю строку XML-тегов и данных в PHP в API на другом сервере, который ожидает XML.

мы отправляем строку через командную строку, как это

exec("curl http://addressToAPI.com/index.php?xml=$xml", $response);

$xml — это строка тегов, которые pringoperties отправляли в API.

API отлично обрабатывает строку в XML и возвращает ответ. Однако ответ $response, который содержит возвращенный XML-файл успеха или неудачи, отправляется обратно в виде массива, который не включает ни один из тегов XML.

К сожалению, мы отправляем данные в виде строки, потому что на сервере работает PHP 4.3.9 без расширения domxml и не установлен PHP curl. Мы не можем запустить его на другом сервере и не можем обновить сервер из-за того, что на нем запущено другое программное обеспечение.

Итак, поскольку нам нужно работать с этим API, мы решили, что можем отправить XML в виде строки (что, кажется, работает нормально), но ответ, который мы получаем, просто не возвращается в виде строки или xml.

Мы знаем, что сервер API возвращает XML, поскольку он регистрирует каждый запрос, и мы можем видеть входной документ и возвращенный ответ в его журнале.

Почему-то кажется, что curl из командной строки изменяет ответ XML на массив без тегов.

Я надеюсь, что это имеет какой-то смысл. Кто-нибудь знает, как получить ответ XML, чтобы мы могли успешно получить данные.


person azzy81    schedule 07.07.2011    source источник
comment
Не видя возвращенных данных и соответствующего образца того, что вы ожидаете, никто не сможет в этом разобраться. Откуда вы ЗНАЕТЕ, что сервер выдает правильный вывод? Вы проверяли это другими способами?   -  person Jim Garrison    schedule 07.07.2011


Ответы (1)


Мы придумали решение этой проблемы. Я все еще не уверен, почему возвращенный ответ представляет собой массив, а не просто строку, но мне удалось заставить его включать теги в элементы массива. Затем мы используем цикл foreach для передачи каждого ключа массива в конец строки.

Затем мы получаем ответ, который хотели.

Извините, я понимаю, что кому-то трудно помочь без примеров, особенно когда проблема не ясна. Это оказался один из тех случаев, когда вам просто нужно было поиграть с кодом, пока вы не получили желаемое решение.

В любом случае большое спасибо за ваше время в чтении этого поста.

person azzy81    schedule 07.07.2011