Он! P с SimpleXML для $ ответа в PHP - PullRequest
       32

Он! P с SimpleXML для $ ответа в PHP

0 голосов
/ 29 сентября 2011

Я отправляю XML на веб-сервер, используя PHP, и сервер возвращает ответ XML.Мне нужна помощь в разборе значений из ответа!Я прочитал инструкции SimpleXML, но, насколько я понимаю, все это только для тех случаев, когда данные XML уже созданы, но их необходимо проанализировать.Пока это мой PHP-скрипт:

<?php
$ch = curl_init("http://api.online-convert.com/queue-insert");
$count = $_POST['count'];
$file = "testdoc2.txt";
$fh = fopen( $file, 'w' );
$carriageReturn = "\n";
fwrite( $fh, $count );
fclose( $fh );

$request["queue"] = file_get_contents($count);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
curl_close ($ch);
echo $response;

$xmlstr = simplexml_load_string($response);

$file = "testdoc.txt";
$fh = fopen( $file, 'w' );
$carriageReturn = "\n";
fwrite( $fh, $xmlstr);
fclose( $fh );


?>

Ответ XML, который нужно проанализировать, таков:

<?xml version="1.0" encoding="utf-8"?>
<queue-answer>
  <status>
    <code>0</code>
    <message>Successfully inserted job into queue.</message>
  </status>
  <params>
    <downloadUrl>http://www.online-convert.com/result/35f6ddbcc2ca58e7e98addc7c2efd6eb</downloadUrl>
    <hash>35f6ddbcc2ca58e7e98addc7c2efd6eb</hash>
  </params>
</queue-answer>

Мне просто нужно извлечь значение и показать его пользователю,Я разработчик для iPhone.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

Сначала необходимо создать XML-документ запроса и отправить его на сервер, например (без обработки ошибок и т. Д. И без тестирования из-за отсутствия ключа API):

$request = new SimpleXMLElement('<queue><apiKey/><targetType/><targetMethod/><testMode/><sourceUrl/></queue>');
$request->apiKey = 'abcdefghijklmnopqrstuvwx';
$request->targetType = 'image';
$request->targetMethod = 'convert-to-jpg';
$request->testMode = 'false';
$request->sourceUrl = 'http://whatever';
$ch = curl_init("http://api.online-convert.com/queue-insert");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('queue'=>$request->asXml()));
$response = curl_exec($ch);
// TODO: might want to test the response code here, see curl_get_info/CURLINFO_HTTP_CODE
curl_close ($ch);

тогда нужно разобрать ответ

$queueAnswer = simplexml_load_string($response);
echo 'status code:', $queueAnswer->status->code;
// in case of success you should be able to access the values via
echo ' url:', queueAnswer->params->downloadUrl;
echo ' hash:', queueAnswer->params->hash;
0 голосов
/ 29 сентября 2011

Вы можете проанализировать файл XML, используя это

$xml=simplexml_load_string($response);
foreach($xml->children() AS $child)
{
     echo $child->getName().”:”.$child.”<br/>”;
}

Вы можете поставить условие if и извлечь только необходимое сообщение.

...