【问题标题】:PHP get data from web services that returns an stdClass ObjectPHP 从返回 stdClass 对象的 Web 服务获取数据
【发布时间】:2016-03-26 01:05:51
【问题描述】:

我正在尝试使用以下代码从我的网络服务中获取值:

$client = new SoapClient($url);     
$response = $client->GetInfoByNumeroContrato(array(
   'schema' => $schema, 
   'numContrato' => $numContract
));

我有一个名为GetInfoByNumeroContrato 的方法,它接收两个参数。 当我调用我的网络服务时,$response 给了我一个stdClass 对象,如下所示:

stdClass Object
(
[GetInfoByNumeroContratoResult] => stdClass Object
    (
        [schema] => 
        [any] => 000559500trueTITULAR BNMARIA  DORES  PEIXOTO220125424DORESRIBEIRO50@GMAIL.COMR DAMIAO DE GOIS ENTRADA 71 BL 1 1 ANDAR N 90000003194460-2921646013411950-10-07T00:00:00+01:00Divorciado003501600006968540097PT50003501600006968540097CGDIPTPLBilhete de IdentidadeSENHORA DA HORAFeminino4010003002015-09-16T00:00:00+01:0024.90falseSENIORtrue2015-10-05T00:00:00+01:00true2016-09-05T00:00:00+01:002015-11-05T00:00:00+00:00M0PT47111799DÉBITO DIRETOCONNECTA000559500falseAGREGADOJOSE  LUIS RIBEIRO  FAIEL220125424R DAMIAO DE GOIS ENTRADA 71 BL 1 1 ANDAR N 90000003204460-2921646013411983-08-23T00:00:00+01:00Outro003501600006968540097Bilhete de IdentidadeSENHORA DA HORAMasculino4010003012015-09-16T00:00:00+01:0024.90falseSENIORtrue2015-10-05T00:00:00+01:00true2016-09-05T00:00:00+01:002015-11-05T00:00:00+00:00M0PT47111799DÉBITO DIRETOCONNECTA
    )

[_exception] => 
)

我们的想法是从 [any] 和 POST 中分别获取每个值。例如得到“000559500”然后“真”等等。

我已经尝试解析这个但没有成功。
有没有更好的方法来解决这个问题?

当我执行以下操作时:

print $response->GetInfoByNumeroContratoResult->any;

我得到以下答案:

000559500trueTITULAR BNMARIA DORES PEIXOTO220125424DORESRIBEIRO50@GMAIL.COMR   DAMIAO DE GOIS ENTRADA 71 BL 1 1 ANDAR N 90000003194460-2921646013411950-10-07T00:00:00+01:00Divorciado003501600006968540097PT50003501600006968540097CGDIPTPLBilhete de IdentidadeSENHORA DA HORAFeminino4010003002015-09-16T00:00:00+01:0024.90falseSENIORtrue2015-10-05T00:00:00+01:00true2016-09-05T00:00:00+01:002015-11-05T00:00:00+00:00M0PT47111799DÉBITO DIRETOCONNECTA000559500falseAGREGADOJOSE LUIS RIBEIRO FAIEL220125424R DAMIAO DE GOIS ENTRADA 71 BL 1 1 ANDAR N 90000003204460-2921646013411983-08-23T00:00:00+01:00Outro003501600006968540097Bilhete de IdentidadeSENHORA DA HORAMasculino4010003012015-09-16T00:00:00+01:0024.90falseSENIORtrue2015-10-05T00:00:00+01:00true2016-09-05T00:00:00+01:002015-11-05T00:00:00+00:00M0PT47111799DÉBITO DIRETOCONNECTA

是否可以一一获取?

是否可以从 web 服务中接收 insted 获取 [any] 中的所有内容,例如:[contractNumer] => value 然后 [Name] => value 等等?个人?

【问题讨论】:

  • 贴出你客户的代码,从你目前提供的代码中很难知道哪里出了问题。
  • print $response->GetInfoByNumeroContratoResult->any; 输出什么?
  • 还使用GetInfoByNumeroContrato 方法的代码更新您的问题
  • 当我发布打印 $response->GetInfoByNumeroContratoResult->任何我得到以下信息:000559500trueTITULAR BNMARIA DORES PEIXOTO220125424DORESRIBEIRO50@GMAIL.COMR DAMIAO DE GOIS ENTRADA 71 BL 1 1 ANDAR N 900000319440... >
  • 我一次得到所有的值。

标签: php arrays web-services object stdclass


【解决方案1】:

我知道这是一个迟到的答案,但可能会为其他人节省几个小时:

$xml= simplexml_load_string($response->GetInfoByNumeroContratoResult->any);

print_r($xml);  //an array containing the whole XML

print $x->contractNumber; //individually

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多