2011-12-26 59 views
0

我正在更新我的問題,並提供了一些我今天能夠實現的突破。我用了get_object_vars。 此代碼能夠打印出我想要迭代的值。如何在PHP中解析Web服務返回的響應到數組中

  $fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>"")); 
      $arrayPid = array(); 

      foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //$arrayPid =$fileStatusObtained ; 
      } 

      echo is_array($arrayPid) ? 'Array' : 'not an Array'; 
      echo "<br>"; 

      echo("Count of array ".count($arrayPid)); 
      echo "<br>"; 
      print_r('<pre>'. print_r($arrayPid) .'</pre>'); 

http://www.image-share.com/ijpg-1163-165.html是我所看到的結果。

現在,因爲這個對象裏面有對象以及我需要的值,例如FileID,FileName等。我看到了錯誤信息,但是看到了輸出結果。我使用的代碼是這樣的(從上面的只是一個非常微小的變化。我用一個foreach)

$fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>"")); 
      $arrayPid = array(); 

      foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //$arrayPid =$fileStatusObtained ; 
      } 

      echo is_array($arrayPid) ? 'Array' : 'not an Array'; 
      echo "<br>"; 

      echo("Count of array ".count($arrayPid)); 
      echo "<br>"; 
      //print_r('<pre>'. print_r($arrayPid) .'</pre>'); 


      foreach($arrayPid as $val) { 
       echo ($val); 
       echo "<br>"; 
      } 


     } 

由於這一結果只見以下輸出http://www.image-share.com/ijpg-1163-166.html。 索引號1佔用了對象,因此也是字符串轉換的錯誤。 如果我使用For循環而不是上面的代碼中的foreach,我無法打印值。 我想:

  for($i=0;$i<(count($arrayPid));$i+=1) 
      { 
       echo($arrayPid[$i]); 
      } 

但是,這將打印什麼。

任何人都可以幫助我一種方式,以便我可以迭代並具有該數組$ arrayPid中的值。

想對你的建議,看法,懷疑一致。 對不起,我使用圖片共享,但這是我可以分享我的屏幕的唯一方法。

感謝 安吉

+0

太多的代碼! – emaillenin 2011-12-26 16:29:18

+0

您使用哪個庫來執行肥皂請求? – hakre 2011-12-26 18:39:43

+0

我沒有使用任何Soap庫。我只是打電話使用的網址。此代碼有效。 GetSourceLanguages提供的結果。我的查詢更多地指向如何提取出數組$ fileStatus的值。語句** GetSourceLanguagesResult-> Languages-> Language as $ language **工作,而** GetFileStatusResult-> FileStatuses-> FileStatus as $ fileStatusObtained **纔不是。我正在嘗試確認Web服務中的xml標記是否正在被正確解析。 @emaillenin我希望我的查詢現在更清晰一些。謝謝 – 2011-12-27 07:48:33

回答

0

使用它的正確方法是:

 foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //print_r($fileStatusObtained->FileID);     
       $fileId [] = $fileStatusObtained->FileID; 
               ... 
               } 
相關問題