如何分离 Web 服务的输出?

How can I separate the output of the web service?

我从 php 代码中的 Web 服务得到这个结果:

> stdClass Object (
>     [Post_Added_Record_ByMenuIDResult] => stdClass Object
>         (
>             [HTMLStructure] => ثبت انجام شد
>             [IsAuthenticated] => 1
>             [MenuID] => 1191
>             [Password] => 
>             [PersonID] => 27598
>             [PersonalityID] => 31413
>             [RecordValues] => 
>             [RoleID] => 5
>             [Sexuality_Title] => m
>             [UserName] => mr.piri
>         ) )

我想在 [HTMLStructure] 中得到相反的短语。在这个例子中: ثبت انوام شد

if (strstr( $result, 'HTMLStructure' ) ) {
       $HTMLStructurePos=strpos( $result, '[HTMLStructure] =>' );
       echo $HTMLStructurePos;
       $IsAuthenticatedPos=strpos( $result, '            [IsAuthenticated]' );
       echo $IsAuthenticatedPos;
       $result2 = substr($result, $HTMLStructurePos, $IsAuthenticatedPos);
  echo "<pre>";
   print_r($result2);
   echo "</pre>";
} else {
  echo "Not found";
}

但我明白了

Not found

在输出中。

我认为这是一个结构,我必须使用 pointer.But 来获取值,有人知道怎么做吗?

您从您的 Web 服务中获得了一个嵌套对象。简化为PHP代码:

$result = (object)['Post_Added_Record_ByMenuIDResult' => (object)[
  'HTMLStructure' => "ثبت انجام شد",
  'IsAuthenticated' => 1,
  //...
]];

可以像这样简单地访问HTML:

$html = $result->Post_Added_Record_ByMenuIDResult->HTMLStructure;

echo $html; // ثبت انجام شد

就像HTML结构一样,您还可以获得像 IsAuthenticated 这样的值。

我用这段代码解决了这个问题:

foreach ($result as $obj)
{
    // Here you can access to every object value in the way that you want
    $result2 = $obj->HTMLStructure;
}