искаженный XML, возвращаемый командной строкой curl - PullRequest
0 голосов
/ 07 июля 2011

Я отправляю строку тегов 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, чтобы мы могли успешно получить данные.

1 Ответ

0 голосов
/ 07 июля 2011

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

У нас есть ответ, который мы хотели.

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

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

...