PEAR Manual
This manual is provided as a courtesy. It is not an official source. Please check pear.php.net for updated information.
Example 59-1.
require_once 'XML/RPC.php'; /* * Get info about the most recently released PEAR package */ $params = array(new XML_RPC_Value(1, 'int')); $msg = new XML_RPC_Message('release.getRecent', $params); $cli = new XML_RPC_Client('/xmlrpc.php', 'pear.php.net'); // $cli->setDebug(1); $resp = $cli->send($msg); if (!$resp) { echo 'Communication error: ' . $cli->errstr; exit; } if (!$resp->faultCode()) { $val = $resp->value(); $data = XML_RPC_decode($val); echo $data[0]['name'] . ' is at version ' . $data[0]['version']; } else { /* * Display problems that have been gracefully cought and * reported by the xmlrpc.php script */ echo 'Fault Code: ' . $resp->faultCode() . "\n"; echo 'Fault Reason: ' . $resp->faultString() . "\n"; }
Example 59-2.
Here is the server script. It's named xmlrpc.php and located in the document root of the web server at localhost:
require_once 'XML/RPC/Server.php'; function returnTimes2($params) { $param = $params->getParam(0); // This error checking syntax was added in Release 1.3.0 if (!XML_RPC_Value::isValue($param)) { return $param; } $val = new XML_RPC_Value($param->scalarval() * 2, 'int'); return new XML_RPC_Response($val); } $server = new XML_RPC_Server( array( 'times2' => array( 'function' => 'returnTimes2' ) ) );
And here is the client script:
require_once 'XML/RPC.php'; $input = 8; $params = array(new XML_RPC_Value($input, 'int')); $msg = new XML_RPC_Message('times2', $params); $cli = new XML_RPC_Client('/xmlrpc.php', 'localhost'); // $cli->setDebug(1); $resp = $cli->send($msg); if (!$resp) { echo 'Communication error: ' . $cli->errstr; exit; } if (!$resp->faultCode()) { $val = $resp->value(); echo $input . ' times 2 is ' . $val->scalarval(); } else { /* * Display problems that have been gracefully cought and * reported by the xmlrpc.php script. */ echo 'Fault Code: ' . $resp->faultCode() . "\n"; echo 'Fault Reason: ' . $resp->faultString() . "\n"; }