Be careful with encodings, the xmlrpc-decode function is rather strict. For example, the following response parse returns NULL :
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>a & b</string></value>
</param>
</params>
</methodResponse>
You should use entities :
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>a & b</string></value>
</param>
</params>
</methodResponse>
If your server does not encode responses properly, you may have to process responses before parse.
xmlrpc_decode
(PHP 4 >= 4.1.0, PHP 5)
xmlrpc_decode — Decodifică XML în tipuri indigene PHP
Descrierea
Avertizare
Această funcţie este EXPERIMENTALĂ. Comportamentul acestei funcţii, denumirea sa şi orice alte aspecte documentate în privinţa acestei funcţii pot să fie modificate fără preaviz într-o versiune viitoare a PHP. Utilizaţi această funcţie la propriul risc.
Parametri
- xml
-
Răspunsul XML întors de metoda XMLRPC.
- encoding
-
Codificarea întrării susţinută de iconv (implicit "iso-8859-1").
Valorile întroarse
Întoarce un array, un integer, un string sau un boolean în dependenţă de răspunsul întors de metoda XMLRPC.
Exemple
Accesaţi exemplul din xmlrpc_encode_request().
Vedeţi de asemenea
- xmlrpc_encode_request() - Generează XML pentru o cerere de metodă
- xmlrpc_is_fault() - Determină dacă o valoare din array reprezintă o greşeală XMLRPC
xmlrpc_decode
david dot bachelart at polytechnique dot org
18-Jul-2004 03:18
18-Jul-2004 03:18
hfuecks at pinkgoblin dot com
16-Aug-2002 10:57
16-Aug-2002 10:57
Use this with an XML-RPC client to decode a server response into native PHP variables. It will automatically translate the response XML-RPC data types into their PHP equivalents.
This function will return only false is there is any problem with format of the XML it receives.
The HTTP response header will need to be stripped off with something like;
<?php
$xml=(substr($response, strpos($response, "\r\n\r\n")+4));
$phpvars = xmlrpc_decode ($xml);
?>
