Re: byte[] to PHP-string conversion RESOLVED

Marcel Ruff <[email protected]> Fri, 18 Jul 2008 10:14:20 +0200
Newsgroups gmane.comp.php.xml-rpc
Message-ID <[email protected]>
Thanks for the details.

What do you mean by 'xmlrpc extension' versus 'phpxmlrpc library'?
Isn't everything phpxmlrpc? Are there two implementations in parallel?

Thanks
Marcel

Gaetano Giunta wrote:
> 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=20
> in php, but they should generally not be mixed up. As a general=20
> guideline, the extension is much faster, but the library is more=20
> 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
>>
>
>


--=20
Marcel Ruff
http://www.xmlBlaster.org
http://watchee.net
Phone: +49 7551 309371