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);
?>
xmlrpc_decode
(PHP 4 >= 4.1.0, PHP 5)
xmlrpc_decode — XML'i doğal PHP türlerine dönüştürür
Açıklama
Uyarı
Bu işlev DENEYSELDİR. Bu işlevin davranışı, ismi ve belgeleri PHP'nin sonraki sürümlerinde hiçbir duyuru yapılmaksızın değiştirilebilir. Bu riski göze alamayacaksanız bu işlevi kullanmayın.
Değiştirgeler
-
xml -
XMLRPC yöntemi tarafından döndürülen XML yanıtı.
-
kodlama -
iconv tarafından desteklenen karakter kodlamalarından biri.
Dönen Değerler
XMLRPC yöntemiyle döndürülen yanıta göre bir dizi, bir tamsayı, bir dizge veya mantıksal bir değer döner.
Örnekler
xmlrpc_encode_request() işlevindeki örneğe bakınız.
Ayrıca Bakınız
- xmlrpc_encode_request() - Bir yöntem çağrısı için XML üretir
- xmlrpc_is_fault() - Bir dizinin bir XMLRPC hatasını gösterip göstermediğini tespit eder
hfuecks at pinkgoblin dot com ¶
10 years ago
phil dot berry at elise-international dot net ¶
1 year ago
Make sure the server isn't returning a string with a space for the first character, this fails in version 5.3.3 and the function returns null (though seems to be ok in 5.2).
Easily sorted by trimming the response data:
<?php xmlrpc_decode( trim($response) ); ?>
ryon dot sherman at gmail dot com ¶
3 years ago
64 bit (i8) integers are not parsed by xmlrpc_decode().
Use a string replacement to work around this:
<?php
$xml = str_replace('i8>', 'i4>', $xml);
$decoded_xml = xmlrpc_decode($xml);
?>
david dot bachelart at polytechnique dot org ¶
8 years ago
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.
