PHP:有没有像xmlrpc_encode_request一样的函数?

时间:2011-09-06 17:23:51

标签: php

我一直在写免费的PHP脚本

当我完成遗憾时,我发现xmlrpc_encode_request无法在某些托管中使用

有没有办法直接激活它而无需编辑php.ini?或者是否有任何函数像xmlrpc_encode_request一样没有编辑php.ini?

非常感谢任何帮助。

EX:

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc", false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

1 个答案:

答案 0 :(得分:1)

这已在XML_RPC2包中实施。这是一个例子:

require_once 'XML/RPC2/Backend/Php/Request.php';

$request = new XML_RPC2_Backend_Php_Request('method', 'utf-8');
$request->setParameters(array(1, 2, 3));

$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request->encode(),
)));

然而,使用他们的客户也会更容易:

require_once 'XML/RPC2/Client.php';

$client = XML_RPC2_Client::create('http://example.org/xmlrpc');
$response = $client->method(1, 2, 3);