Re: byte[] to PHP-string conversion RESOLVED

Gaetano Giunta <[email protected]> Fri, 18 Jul 2008 00:08:44 +0200
Newsgroups gmane.comp.php.xml-rpc
Message-ID <[email protected]>
Marcel Ruff a =E9crit :
> Hi again,
>
> changing the code to
>
>                $res =3D php_xmlrpc_decode( $result->value() );
>
> // instead of
> // $res =3D xmlrpc_decode( $result->serialize() );
>
> resolved it (i have not investigated further to understand it),
The function xmlrpc_decode is from the php xmlrpc extension
The function php_xmlrpc_decode is from the phpxmlrpc library

Both server the same purpose, ie creating xmlrpc servers and clients in=20
php, but they should generally not be mixed up. As a general guideline,=20
the extension is much faster, but the library is more complete.

Bye
Gaetano
>
> regards
> Marcel
>
>
> Marcel Ruff wrote:
>> Hi,
>>
>> i have a Java xmlrpc server which returns an array of triples
>> {
>>  String key
>>  byte[] content
>>  String qos
>> }
>>
>> When i call it with phpxmlrpc i get:
>>
>> <methodResponse>
>>  <params>
>>    <param>
>>      <value>
>>        <array>
>>          <data>
>>            <value>
>>              <array>
>>                <data>
>>                  <value><string>Hello</string></value>
>>                  <value><base64>MzQz</base64></value>
>>                  <value><string>&lt;qos/&gt;</string></value>
>>                </data>
>>               </array>
>>             </value>
>>          </data>
>>        </array>
>>      </value>
>>    </param>
>>  </params>
>> </methodResponse>
>>
>> Now my problem:
>>
>> I can read in PHP the two strings without problem
>> but how can i read the binary data (encoded with base64)?
>>
>> $result =3D $this->client->send( $rpcmsg );
>> $res_array =3D xmlrpc_decode( $result->serialize() );
>> $messages =3D array( count($res_array) ) ;
>> $cpt =3D 0 ;
>> foreach( $res_array as $r ){
>>   dbgprint( "OK: [$r[0]]" );
>>   // $r[1] from <value><base64>MTg4Mw=3D=3D</base64></value>
>>   // THIS FAILS:
>>   dbgprint( "binary data: $r[1]" );
>> }
>>
>> Error thrown:
>> ----> Object of class stdClass could not be converted to string in ...
>>
>> But $r[1] should contain the text "Hi".
>>
>> What am i missing?
>>
>> Thanks
>> Marcel
>>
>>
>> _______________________________________________
>> phpxmlrpc mailing list
>> [email protected]
>> http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc
>>
>
> _______________________________________________
> phpxmlrpc mailing list
> [email protected]
> http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc
>