Php xmlrpc客户端获取rtorrent信息

时间:2014-12-23 01:54:57

标签: php xml-rpc xmlrpcclient

我需要创建简单的PHP脚本来获取我的rtorrent实例的一些信息...... 我尝试了很多代码,但我从不给出答案......

这是我的最后一次测试

ini_set('display_errors', 1);
error_reporting(E_ALL);

function do_call($host, $port, $request) {

    $url = "http://$host:$port";
    $header[] = "Content-type: text/xml";
    $header[] = "Content-length: ".strlen($request);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);

    $data = curl_exec($ch);
    if (curl_errno($ch)) {
        print curl_error($ch);
    } else {
        curl_close($ch);
        return $data;
    }
}

$host = '127.0.0.1';
$port = 10001;
$request = xmlrpc_encode_request("system.listMethods()", null);
$response = do_call($host, $port, $request);
var_dump($response);

你有简单的工作测试代码吗?

1 个答案:

答案 0 :(得分:2)

这是PHP-XMLRPC中的一个错误。

但是你可以替换你的行:

$data = curl_exec($ch);

使用:

$data = xmlrpc_decode(str_replace('i8>', 'i4>', curl_exec($ch)));

这应该按预期工作。