Soap函数在php中没有返回字符串


soap function not returning string in php

我有一个脚本,返回以下格式的字符串

 {"showStatus":[{"large":980,"small":200,"title":"New Arrival<'/span>gothrough:   Red","status":6,"Id":87643}],"totalStatus  kers":2}1

我有curl代码,登录后从其他网站获得此数据。我正在开发一个soap服务器来与其他服务器共享此细节,而不是再次登录并获取此数据。但是我没有通过soap客户机在其他服务器上获得这些数据。我的soap服务器代码是

<?php
 $server = new SoapServer(null,
                     array('uri' => "urn://mytest/result"));
 function get_data()
 {
 $cookie = 'cookie.txt';
 $url1="http://example.com/city/getdata/";
 $ch = curl_init();
 curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X     10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112   Safari/534.30');
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR,       $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE,      $cookie);
 curl_setopt($ch, CURLOPT_URL, $url1);
$result = curl_exec($ch);
return $result;
}
$server->addFunction('get_data');
$server->handle();
?>

和其他服务器上的soap客户端具有此代码

 $client = new SoapClient(null, array(
  'location' => "http://x.x.x.x/soapserver/soapserver.php",
  'uri'      => "urn://mytest/result"));
 $result = $client->
    __soapCall("get_data");
echo $result;
?>

我得到的输出是"1"而不是那个字符串。如果你知道这个

有什么错误,请评论

您需要设置CURLOPT_RETURNTRANSFER以获得成功时的结果。

curl_exec

之前添加这行
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_exec()成功返回TRUE,失败返回FALSE。但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将返回结果