[phpxmlrpc] byte[] to PHP-string conversion RESOLVED

Marcel Ruff mr at marcelruff.info
Fri Jul 18 09:14:20 BST 2008


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 écrit :
>> Hi again,
>>
>> changing the code to
>>
>>                $res = php_xmlrpc_decode( $result->value() );
>>
>> // instead of
>> // $res = 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 php, but they should generally not be mixed up. As a general 
> guideline, 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 = $this->client->send( $rpcmsg );
>>> $res_array = xmlrpc_decode( $result->serialize() );
>>> $messages = array( count($res_array) ) ;
>>> $cpt = 0 ;
>>> foreach( $res_array as $r ){
>>>   dbgprint( "OK: [$r[0]]" );
>>>   // $r[1] from <value><base64>MTg4Mw==</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
>>> phpxmlrpc at lists.usefulinc.com
>>> http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc
>>>
>>
>> _______________________________________________
>> phpxmlrpc mailing list
>> phpxmlrpc at lists.usefulinc.com
>> http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc
>>
>
>


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



More information about the phpxmlrpc mailing list