PHP: отправить запрос POST, а затем прочитать ответ XML? - PullRequest
4 голосов
/ 18 мая 2011

Я пытаюсь написать скрипт PHP, который отправляет запрос POST на удаленный сервер, а затем анализирует ответ XML.

Я могу выполнить запрос POST, но у меня возникли трудности (из других вопросов SO) разобраться, как разобрать XML-ответ.

Мой текущий код дает мне: Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "1" in /Users/simon/usercreate.php on line 46 - строка simplexml_load_file($response).

Я работаю на локальном сервере, но не уверен, что это имеет значение.Код:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$response = curl_exec ($curl);
curl_close ($curl);
echo $response;
$rxml = simplexml_load_file($response);
echo $rxml->title;

Что я делаю не так?

Ответы [ 3 ]

8 голосов
/ 18 мая 2011

используйте simplexml_load_string вместо simplexml_load_file

3 голосов
/ 18 мая 2011

Вы должны установить опцию cURL для возврата перевода

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1 голос
/ 18 мая 2011

Вместо загрузки файла вы хотите загрузить строку.

// Instead of
$rxml = simplexml_load_file($response);

// You want
$rxml = simplexml_load_string($response);
...