Искаженный 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, чтобы мы могли успешно получить данные.

1 ответ

Решение

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

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

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

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

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