cURL, возвращающий XML или JSON - PullRequest
3 голосов
/ 18 января 2011

У меня есть форма, чтобы сказать здесь - http://example.com/palreg.php

Как только люди зарегистрируются, я отправлю им электронное письмо со ссылкой, которая позволит им редактировать свои данные (я знаю, что это сумасшедший способделать что-то, но я работаю над чужим кодом, так что не возражайте) например, URL-адрес как таковой http://example.com/palreg.php?paliD=1234, и когда они перейдут на эту страницу, форма будет заполнена их информацией, чтобы они могли вносить изменения.

Теперь проблема в том, что БД находится на другом сайте, и информация должна быть передана на этот сайт для выполнения действия выбора, для этого я использую cURL для отправки информации, подобной этой

$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);

На другом конце (http://example2.com/processXML.php) я преобразую xml в массив и выполняю запрос для выбора информации о приятелях на основе отправленного идентификатора.

Реальный вопрос теперь заключается в том, как сделатьЯ отправляю полученную информацию о приятелях (в виде xml, json или массива) обратно, чтобы я мог заполнить форму возвращенными данными.

Также я могу сделать return $dataArray; в processXML.php и иметь возможность получитьэто?

Хорошо, чтобы прояснить ситуацию, то, что я делаю в processXML.php, - это извлекаю набор результатов и делаю это

print json_encode($resultArray);

, не должен ли я печатать или возвращать

Спасибо, и пустья знаю, если что-то не ясно.

Ответы [ 3 ]

5 голосов
/ 18 января 2011

просто закодируйте его, как хотите, и отобразите его на странице. ваш $ data = будет содержать отраженное содержимое. Личным предпочтением было использовать JSON, поскольку его так легко разбросать. как в

//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...
1 голос
/ 18 января 2011

Просто выведите данные, которые вам нужно отправить обратно в форму, в выбранном вами формате, и получите этот ответ в thepalreg.php.

1 голос
/ 18 января 2011

Когда вы извлекаете информацию из базы данных и обрабатываете ее в processXML.php, добавляете результаты в массив, используйте json_encode () , чтобы преобразовать массив в JSON, а затем выводите результаты в стр.

...