5 # xmlrpc-php translates this into a real <fault>
6 $fault["faultCode"] = -32602;
7 $fault["faultString"] = "bad parameter";
11 # We only check the params in sum(), because that is the one that
12 # xmlrpc-test tests will fail if given bad args
14 function sum ($method_name, $params, $app_data)
16 if (xmlrpc_get_type ($params[0]) != "array")
20 foreach ($params[0] as $val) {
21 if (xmlrpc_get_type ($val) != "int")
29 function countBools ($method_name, $params, $app_data)
31 $counts["true"] = $counts["false"] = 0;
32 foreach ($params[0] as $val) {
34 $counts["true"] = $counts["true"] + 1;
36 $counts["false"] = $counts["false"] + 1;
41 function md5sum ($method_name, $params, $app_data)
43 $val = md5 ($params[0]->scalar, true);
44 xmlrpc_set_type ($val, "base64");
48 function dateChange ($method_name, $params, $app_data)
50 $date_str = $params[0]->scalar;
51 $date = strptime ($date_str, "%Y%m%dT%H:%M:%S");
53 foreach ($params[1] as $name => $val) {
59 $ret = sprintf ("%04d%02d%02dT%02d:%02d:%02d",
60 $date["tm_year"] + 1900, $date["tm_mon"] + 1,
61 $date["tm_mday"], $date["tm_hour"],
62 $date["tm_min"], $date["tm_sec"]);
63 xmlrpc_set_type ($ret, "datetime");
67 function echo_ ($method_name, $params, $app_data)
72 function ping ($method_name, $params, $app_data)
74 if (count ($params) == 0)
80 # Work around xmlrpc-php lossage; otherwise the datetime values
81 # we return will sometimes get a DST adjustment we do not want.
84 $xmlrpc_server = xmlrpc_server_create ();
85 xmlrpc_server_register_method($xmlrpc_server, "sum", "sum");
86 xmlrpc_server_register_method($xmlrpc_server, "countBools", "countBools");
87 xmlrpc_server_register_method($xmlrpc_server, "md5sum", "md5sum");
88 xmlrpc_server_register_method($xmlrpc_server, "dateChange", "dateChange");
89 xmlrpc_server_register_method($xmlrpc_server, "echo", "echo_");
90 xmlrpc_server_register_method($xmlrpc_server, "ping", "ping");
92 $response = xmlrpc_server_call_method ($xmlrpc_server,
93 implode("\r\n", file('php://input')),
94 0, array ("output_type" => "xml"));
97 xmlrpc_server_destroy ($xmlrpc_server);