从php回调json_encode到json

时间:2014-04-03 09:38:12

标签: php json soap

- 我有一个soap代码,可以从send.php文件中的站点发送短信

$soapClientObj = new SoapClient("http://xxx/Post/Send.asmx?wsdl");
$parameters['username'] = "xxx";
$parameters['password'] = "xxx";
$parameters['to'] = "xxx";
$parameters['text'] = "xxx";
print_r($soapClientObj->SendSms($parameters));

- 和.js文件一起发送一些数据并从index.php文件中获取一些数据

-and index.php文件:

...
echo json_encode(array('r' => $numid,'m' => 'xxx'));
sndsms($text,array("$mobilenumber")); //function in send.php
...

现在我调用index.php,只想从index.php发送以下代码

json_encode(array('r' => '0','m' => '???')); 

但是每次在json_encode(array('r' => '0','m' => '???')); +中发送的字符串都会在send.php中返回print_r($soapClientObj->SendSms($parameters));的值 我怎样才能发送json_encode?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以调用你的send.php中定义的sms方法,并返回一个输出,因为你的print_r语句。 现在你要发送短信但不在index.php中产生outpur,而只是输出你的json_encode语句的结果。

考虑到这一点,您可能希望将send.php代码包装在一个函数中并让它返回一个字符串,而不是将其输出到输出缓冲区。

function sendSMS ($text, $parameters) {
  $soapClientObj = new SoapClient("http://example.org/Post/Send.asmx?wsdl");
  $parameters['username'] = "xxx"; 
  $parameters['password'] = "xxx";
  $parameters['to']       = "xxx";
  $parameters['text']     = $text;
  return $soapClientObj->SendSms($parameters);
}

现在你可以像这样调用它

sendSMS($text,array("$mobilenumber"));

或像以前一样打印:

print_r(sendSMS($text,array("$mobilenumber")));

现在在index.php中你想要这样做:

echo json_encode(array('r' => $numid,'m' => 'xxx'));
sendSMS($text,array("$mobilenumber"));