文字

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode将 XML 译码为 PHP 本身的类型

说明

mixed xmlrpc_decode ( string $xml [, string $encoding = "iso-8859-1" ] )
Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参数

xml

XML response returned by XMLRPC method.

encoding

Input encoding supported by iconv.

返回值

Returns either an array, or an integer, or a string, or a boolean according to the response returned by the XMLRPC method.

范例

See example by xmlrpc_encode_request() .

参见

  • xmlrpc_encode_request() - 为 PHP 的值生成 XML
  • xmlrpc_is_fault() - Determines if an array value represents an XMLRPC fault

用户评论:

[#1] carmageddon at gmail dot com [2013-06-03 07:42:22]

Apparently there is a slight problem with xmlrpc_decode (or php) which re-formats this input: <value><double>0.000000</double></value>

As the double number 0.

To get around it, use: number_format($val, 2);
Output would be 0.00

[#2] phil dot berry at elise-international dot net [2011-09-05 20:09:22]

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_decodetrim($response) ); ?>

[#3] ryon dot sherman at gmail dot com [2009-08-21 16:18:25]

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);

?>

[#4] david dot bachelart at polytechnique dot org [2004-07-18 08:18:11]

Be careful with encodings, the xmlrpc-decode function is rather strict. For example, the following response parse returns NULL :

<?phpxml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><string>a & b</string></value>
         </param>
      </params>
   </methodResponse>

You should use entities : 
<?phpxml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><string>a &amp; b</string></value>
         </param>
      </params>
   </methodResponse>

If your server does not encode responses properly, you may have to process responses before parse.

[#5] hfuecks at pinkgoblin dot com [2002-08-16 03:57:42]

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($responsestrpos($response"\r\n\r\n")+4));

$phpvars xmlrpc_decode ($xml);
?>

上一篇: 下一篇: