2011-10-21 7 views
1

私はsoap apiからのデータをphpで取得しています。アレイ内のデータを取得することはできません。それは私がソープデータは致命的なエラーを出します:配列としてstdClass型のオブジェクトを使用できません

致命的なエラーをエラー与えたびに:[OK]を

stdClass Object (

[item] => Array 
    (
     [0] => stdClass Object 
      (
       [date] => 2008-07-17T01:23:06Z 
       [directory] => 1 
       [downloadCount] => 0 
       [downloadLink] => http://www.example.com/folder/8ISxjbEs/_online.html 
       [empty] => 
       [id] => 8290268 
       [md5] => 
       [name] => 
       [parentId] => -1 
       [removed] => 
       [shared] => 
       [size] => 17 
       [version] => 0 
      ) 

     [1] => stdClass Object 
      (
       [date] => 2009-11-03T23:03:15Z 
       [directory] => 
       [downloadCount] => 5 
       [downloadLink] => http://www.example.com/file/mIofv-vJ/MASTER-ACCOUNTS_3_Nov_2009.html 
       [empty] => 
       [id] => 146103085 
       [md5] => b073b9573227843e25d19e0e9e60ce80 
       [name] => MASTER-ACCOUNTS 3 Nov 2009.zip 
       [parentId] => 8290268 
       [removed] => 
       [shared] => 
       [size] => 3401447 
       [version] => 0 
      ) 
)) 

に私は4shared APIを使用しています配列としてのタイプはstdClassのオブジェクトを使用することはできません。 4shared

$user_login = "[email protected]"; 
$user_password = "password"; 

$client = new SoapClient("https://api.4shared.com/jax2/DesktopApp?wsdl", array(
"cache_wsdl" => WSDL_CACHE_DISK, 
"trace" => 1, 
"exceptions" => 0 
) 
); 

$client->yourFunction(); 
//Getting list of all folders 
echo "<pre>"; 

$getAllItems = $client->getAllItems ($user_login, $user_password); 

print_r ($getAllItems); 

このコードに

//ユーザーの資格情報は、上記はstdClassオブジェクトを印刷しています。私は配列に変換することができません。

+0

に使用されるコードを投稿してくださいSOAP応答を取得して格納します。 –

+0

詳細を追加しましたので、今すぐ確認してください。 –

答えて

1

を使用して新しい配列にすべての要素をプッシュすることができますあなたが使用して変換しみましたget_object_vars();関数?だからここに私の問題の解決策を探している間

<?php 

function objectToArray($d) { 
    if (is_object($d)) { 
     // Gets the properties of the given object 
     // with get_object_vars function 
     $d = get_object_vars($d); 
    } 

    if (is_array($d)) { 
     /* 
     * Return array converted to object 
     * Using __FUNCTION__ (Magic constant) 
     * for recursive call 
     */ 
     return array_map(__FUNCTION__, $d); 
    } 
    else { 
     // Return array 
     return $d; 
    } 
} 

?> 

*です私はそれが答えるためにちょっと遅れて知っているが、私はこの質問に出くわした私の2セント:)

http://www.if-not-true-then-false.com/2009/php-tip-convert-stdclass-object-to-multidimensional-array-and-convert-multidimensional-array-to-stdclass-object/

1

あなたは配列としてそのオブジェクトをキャストしようとすることができます:

class myClass { 
... 
} 
$myobj = new myClass(); 
$myArrObj = (Array) $myobj; 

それとも、このオブジェクトを反復処理しようとget_object_vars

関連する問題