开发者

cURL returning XML or JSON

I've got a form say here - http://example.com/palreg.php

Once people register I'll be sending them an email with the link that will allow them to edit their details (I know it's a crazy way of doing things, but I am working on someone else's code so don't mind) for instance the url as such http://example.com/palreg.php?paliD=1234, and when they go to that page the form will be populated with their information so that they can make changes.

Now the problem is that the DB is in a different site and the information has to be passed to that site to perform a select action, to do so I use cURL to send the information like so

开发者_开发知识库
$url = "http://example2.com/processXML.php";
$xmlStr will be like this

<table>tab_name</table>
<action>select</action>
<palid>1234</palid>

$ch=curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'xmlstr='.$xmlStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = curl_exec($ch);

On the other end (http://example2.com/processXML.php) I convert the xml to an array and perform the query to select pal information based on the id sent.

The real question now is how do I send the retrieved pal information (as xml or json or array) back so that i can populate the form with the returned data.

Also can I do a return $dataArray; in processXML.php and be able to grab it?

OK to make things a bit clearer, what I do in processXML.php is retrieve the result set and do this

print json_encode($resultArray);

not should I print or return

Thank you, and do let me know if things aren't clear.


just encode it as you want, and echo it to the page. your $data= will contain the echoed contents. Personal preference has been to use JSON since it's so easy to throw around. as in

//Bunch of DB stuff..
$row=mysql_fetch_however_you_handle_it();
echo json_encode($row);


//on your receiving end, that just did the cURL send,
$row=json_decode($data,true);//decode the JSON straight into an array...


When you pull the information from the database and process it in processXML.php, add the results to an array, use json_encode() to convert the array to JSON, and then echo the results to the page.


Just echo out the data you need to send back to the form, in your format of choice, and fetch that response in thepalreg.php.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜