public function outputFilter($data, stdClass $context) { if (isset($context->userdata->format) && $context->userdata->format === "xmlrpc") { $result = null; if ($data !== "") { $stream = new BytesIO($data); $reader = new Reader($stream); while (($tag = $stream->getc()) !== Tags::TagEnd) { $reader->reset(); switch ($tag) { case Tags::TagResult: $result = $reader->unserialize(); break; case Tags::TagError: $lasterror = error_get_last(); $result = array("faultCode" => $lasterror["type"], "faultString" => $reader->unserialize()); break; case Tags::TagFunctions: $result = $reader->unserialize(); break; default: return xmlrpc_encode($result); } } } $data = xmlrpc_encode($result); } return $data; }
public static function make($data) { if (!self::$type || !is_array($data)) { return false; } $dd = array(); foreach ($data as $d) { if (is_object($d)) { $dd[] = $d->toArray(); } if (is_array($d)) { $dd[] = $d; } else { $dd[] = array($d); } } if (self::$type == 'json') { header('Content-Type: application/json'); die(json_encode($dd)); } if (self::$type == 'xml') { header('Content-Type: application/xml; charset=utf-8'); die(xmlrpc_encode($dd)); } return false; }
function xmlrpcCall($url, $method, $params) { // xmlrpc encode parameters for ($i = 0; $i < count($params); $i++) { if (get_class($params[$i]) != 'xmlrpcval') { $params[$i] = xmlrpc_encode($params[$i]); } } // send request $message = new xmlrpcmsg($method, $params); debug("XML-RPC message", $message->serialize()); $addr = parse_url($url); $client = new xmlrpc_client($url, $addr['host'], $addr['port']); //if($debug) // $client->setDebug(1); debug("XML-RPC", "call to " . $url); $response = $client->send($message); // process response debug("XML-RPC Response", $response->serialize()); if (!$response) { debug("No response", "probably host is unreachable"); } elseif ($response->faultCode() != 0) { // there was an error debug("Error response: ", $response->faultCode() . " " . $response->faultString()); } else { $retval = $response->value(); if ($retval) { $retval = xmlrpc_decode($retval); } debug("Response", $retval); return $retval; } return NULL; }
function _processViewerTableUpdate($viewer) { $sql = "REPLACE INTO " . TB_USERLOG_VIEWERS . "(viewer) VALUES ('{$viewer}')"; $result = mysql_query($sql); if (!$result) { $response_xml = xmlrpc_encode(array('success' => $result, 'errorMessage' => mysql_error())); print $response_xml; die; } }
public static function Display($data) { if (self::$type && is_array($data)) { if (self::$type == 'json') { return json_encode($data); } if (self::$type == 'xml') { return xmlrpc_encode($data); } } }
/** Returns the xmlrpc payload for the response. */ function payload() { if ($this->IsFault) { $payload = xmlrpc_encode(array("faultCode" => $this->FaultCode, "faultString" => $this->FaultString)); return str_replace(array('<fault>', '</fault>'), array('<methodResponse><fault>', '</fault></methodResponse>'), $payload); } else { $payload = xmlrpc_encode($this->Value); /// @todo verify if user gave us back an array with faultString / faultCode members, /// as we will be sending back junk in that case... return str_replace(array('<params>', '</params>'), array('<methodResponse><params>', '</params></methodResponse>'), $payload); } }
function xmlrpc_encode($php_val) { global $xmlrpcInt; global $xmlrpcDouble; global $xmlrpcString; global $xmlrpcArray; global $xmlrpcStruct; global $xmlrpcBoolean; $type = gettype($php_val); $xmlrpc_val = new xmlrpcval(); switch ($type) { case "array": case "object": $arr = array(); while (list($k, $v) = each($php_val)) { $arr[$k] = xmlrpc_encode($v); } $xmlrpc_val->addStruct($arr); break; case "integer": $xmlrpc_val->addScalar($php_val, $xmlrpcInt); break; case "double": $xmlrpc_val->addScalar($php_val, $xmlrpcDouble); break; case "string": $xmlrpc_val->addScalar($php_val, $xmlrpcString); break; // <G_Giunta_2001-02-29> // Add support for encoding/decoding of booleans, since they are supported in PHP // <G_Giunta_2001-02-29> // Add support for encoding/decoding of booleans, since they are supported in PHP case "boolean": $xmlrpc_val->addScalar($php_val, $xmlrpcBoolean); break; // </G_Giunta_2001-02-29> // </G_Giunta_2001-02-29> case "unknown type": default: // giancarlo pinerolo <*****@*****.**> // it has to return // an empty object in case (which is already // at this point), not a boolean. break; } return $xmlrpc_val; }
function retrieve_email($method_name, $params, $app_data) { $req = $params[0]; $object = $req['objectid']; $rows = $req['number']; $sql = "SELECT `timestamp`,`subject`, `from`,`objectname`,`region`,`objectlocation`,`message` FROM email WHERE `to` = '" . mysql_escape_string($object) . "' LIMIT 0," . $rows; $result = mysql_query($sql); $data = array(); while ($row = mysql_fetch_assoc($result)) { $data[] = array("timestamp" => $row["timestamp"], "subject" => $row["subject"], "sender" => $row["from"], "objectname" => $row["objectname"], "region" => $row["region"], "objectpos" => $row["objectlocation"], "message" => $row["message"]); } // Now delete the email from the database $delete = "DELETE FROM email WHERE `to` = '" . mysql_escape_string($object) . "'"; $result = mysql_query($delete); $response_xml = xmlrpc_encode(array('success' => True, 'errorMessage' => "", 'data' => $data)); print $response_xml; }
/** * This is the main handle for the xmlrpc calls */ public function executeRPC2($request) { // get all the defined RPC $rpc_functions = $this->getRPCFunctions(); // http POST method is required for modifying the database $this->forward404Unless($request->isMethod('post'), "HTTP POST is required"); // log to debug ezDbg::err("enter xmlrpc"); // get xmlrpc request string posted as a raw $xmlrpc_reqstr = file_get_contents("php://input"); // parse the xmlrpc_reqstr $method_name = null; $xmlrpc_params = xmlrpc_decode_request($xmlrpc_reqstr, &$method_name); ezDbg::err("enter method_name={$method_name} xmlrpc param=" . print_r($xmlrpc_params, true)); if (!isset($rpc_functions[$method_name])) { $xmlrpc_resp = array("faultCode" => 1, "faultString" => "unknown method name (" . $method_name . ")"); } else { $rpc_function = $rpc_functions[$method_name]; $nparam = $rpc_function['nparam']; if (count($xmlrpc_params) < $nparam) { $xmlrpc_resp = array("faultCode" => 1, "faultString" => $method_name . " require " . $nparam . " parameters."); } else { try { ezDbg::err('trying to call (' . $rpc_function['function'] . ')', $xmlrpc_params); $xmlrpc_resp = call_user_func_array($rpc_function['function'], $xmlrpc_params); //$xmlrpc_resp = sfWebRPCPluginDemo::superAddFct(2,3); } catch (Exception $e) { $xmlrpc_resp = array("faultCode" => 1, "faultString" => "" . $e->getMessage()); } } } // encode the xmlrpc_resp $xmlrpc_respstr = xmlrpc_encode($xmlrpc_resp); // KLUDGE: xmlrpc_encode is unable to add the methodResponse required $arr = split("\n", $xmlrpc_respstr); $arr[0] .= "\n<methodResponse>"; $arr[count($arr) - 1] = "</methodResponse>"; $xmlrpc_respstr = implode("\n", $arr); ezDbg::err("enter xmlrpc resp=" . print_r($xmlrpc_respstr, true)); // disable the web_debug bar sfConfig::set('sf_web_debug', false); // return the $value in xml $this->getResponse()->setHttpHeader('Content-Type', 'text/xml'); return $this->renderText($xmlrpc_respstr); }
function call($url, $method, $params) { // xmlrpc encode parameters for ($i = 0; $i < count($params); $i++) { if (get_class($params[$i]) != 'xmlrpcval') { $params[$i] = xmlrpc_encode($params[$i]); } } // send request $message = new xmlrpcmsg($method, $params); if ($this->debug) { // $this->display_xml($message->serialize()); print "<PRE>" . htmlentities($message->serialize()) . "</PRE>\n"; //("XML-RPC message:\n $message->serialize()",0); } $addr = parse_url($url); $client = new xmlrpc_client($url, $addr['host'], $addr['port']); if ($this->debug) { $client->setDebug(1); } debug("XML-RPC", "call to " . $url); $response = $client->send($message); if ($this->debug) { print "<PRE>" . htmlentities($response->serialize()) . "</PRE>\n"; } // process response //debug("XML-RPC Response", $response->serialize()); if (!$response) { addError("No response: probably host is unreachable"); } elseif ($response->faultCode() > 0) { // there was an error addError("Error response: " . $response->faultCode() . " " . $response->faultString()); } else { $retval = $response->value(); if ($retval) { $retval = xmlrpc_decode($retval); } //debug("Response", $retval); return $retval; } return NULL; }
function encodeResponse($response) { $respClass = strtolower(@get_class($response)); if ($respClass == 'pwgerror') { $code = $response->code(); $msg = htmlspecialchars($response->message()); $ret = <<<EOD <methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value><int>{$code}</int></value> </member> <member> <name>faultString</name> <value><string>{$msg}</string></value> </member> </struct> </value> </fault> </methodResponse> EOD; return $ret; } parent::flattenResponse($response); $ret = xmlrpc_encode($response); $ret = <<<EOD <methodResponse> <params> <param> <value> {$ret} </value> </param> </params> </methodResponse> EOD; return $ret; }
function syncResp($params) { debug("incoming SYNC request"); $lastSync = xmlrpc_decode($params->getParam(0)); $nodeData = xmlrpc_decode($params->getParam(1)); $objects = xmlrpc_decode($params->getParam(2)); $neighbour = sotf_Neighbour::getById($nodeData['node_id']); if (!$neighbour) { logError("No access: you are not an allowed neighbour node!"); return new xmlrpcresp(0, XMLRPC_ERR_NO_ACCESS, "No access: you are not an allowed neighbour node!"); } $msg = checkAccess($neighbour); if ($msg) { logError($msg); return new xmlrpcresp(0, XMLRPC_ERR_NO_ACCESS, "No access: {$msg}!"); } $retval = $neighbour->syncResponse($lastSync, $nodeData, $objects); // send response $retval = xmlrpc_encode($retval); return new xmlrpcresp($retval); }
function to_xml_rpc() { if (function_exists('xmlrpc_encode')) { return xmlrpc_encode($this->driver->record); } return false; }
/** * Renders the output after preperation. * @see vB_Template::render() * * @param boolean Whether to suppress the HTML comment surrounding option (for JS, etc) * @return string */ protected function render_output($suppress_html_comments = false, $nopermissioncheck = false) { return xmlrpc_encode($this->registered); }
<?php $params = array("one" => "red", "two" => "blue", "three" => "green"); $response = xmlrpc_encode($params); echo $response; $params = array("red", "blue", "green"); $response = xmlrpc_encode($params); echo $response; $params = array(0 => "red", 1 => "blue", 3 => "green"); $response = xmlrpc_encode($params); echo $response;
function getProgrammes($params) { global $config, $db; $prglist = xmlrpc_decode($params->getParam(0)); $query = "SELECT programmes.* FROM ("; $query .= " SELECT sotf_programmes.*, sotf_stations.name as station, sotf_series.title as seriestitle, sotf_series.description as seriesdescription, sotf_prog_rating.rating_value as rating FROM sotf_programmes"; $query .= " LEFT JOIN sotf_stations ON sotf_programmes.station_id = sotf_stations.id"; $query .= " LEFT JOIN sotf_series ON sotf_programmes.series_id = sotf_series.id"; $query .= " LEFT JOIN sotf_prog_rating ON sotf_programmes.id = sotf_prog_rating.id"; $query .= ") as programmes WHERE published = 't'"; $results = array(); foreach ($prglist as $prg) { // debug("------------>".$prg."<------------------"); // debug("------------>".$query." AND id = '$prg'<------------------"); $results[] = $db->getRow($query . " AND id = '{$prg}'"); } foreach ($results as $key => $result) { // debug("------------>".$result['id']."<------------------"); $icon = sotf_Blob::cacheIcon($result['id']); $results[$key]['icon'] = $config['cacheUrl'] . "/" . $result['id'] . ".png"; //TODO if no icon {$IMAGEDIR}/noicon.png $imageprefix???? } $retval = xmlrpc_encode($results); return new xmlrpcresp($retval); }
public function provideSerializeData() { return array(array(['test' => 1], xmlrpc_encode(['test' => 1])), array(['test' => "abc"], xmlrpc_encode(['test' => "abc"])), array(['test' => [1, 2, 3]], xmlrpc_encode(['test' => [1, 2, 3]])), array(['test' => ["test" => 1]], xmlrpc_encode(['test' => ["test" => 1]]))); }
<?php $params = date("Ymd\\TH:i:s", time()); xmlrpc_set_type($params, 'datetime'); echo xmlrpc_encode($params);
<?php var_dump(xmlrpc_encode(1.123456789)); var_dump(xmlrpc_encode(11234567891010)); var_dump(xmlrpc_encode(11234567)); var_dump(xmlrpc_encode("")); var_dump(xmlrpc_encode("test")); var_dump(xmlrpc_encode("1.22222222222222222222222")); echo "Done\n";
/** * Builds an xmlrpc struct value out of an AdoDB recordset * (data values only, no data definition) */ function rs2xmlrpcval_body($adodbrs) { $numfields = $adodbrs->FieldCount(); // build structure containing recordset data $adodbrs->MoveFirst(); $rows = array(); while (!$adodbrs->EOF) { $columns = array(); // This should work on all cases of fetch mode: assoc, num, both or default if ($adodbrs->fetchMode == 'ADODB_FETCH_BOTH' || count($adodbrs->fields) == 2 * $adodbrs->FieldCount()) { for ($i = 0; $i < $numfields; $i++) { if ($adodbrs->fields[$i] === null) { $columns[$i] = new xmlrpcval(''); } else { $columns[$i] = xmlrpc_encode($adodbrs->fields[$i]); } } } else { foreach ($adodbrs->fields as $val) { if ($val === null) { $columns[] = new xmlrpcval(''); } else { $columns[] = xmlrpc_encode($val); } } } $rows[] = new xmlrpcval($columns, "array"); $adodbrs->MoveNext(); } $body = new xmlrpcval($rows, "array"); return $body; }
function classifieds_info_query($method_name, $params, $app_data) { $req = $params[0]; $classifiedID = $req['classifiedID']; $sql = "SELECT * FROM classifieds WHERE classifieduuid = '" . mysql_real_escape_string($classifiedID) . "'"; $result = mysql_query($sql); $data = array(); while ($row = mysql_fetch_assoc($result)) { $data[] = array("classifieduuid" => $row["classifieduuid"], "creatoruuid" => $row["creatoruuid"], "creationdate" => $row["creationdate"], "expirationdate" => $row["expirationdate"], "category" => $row["category"], "name" => $row["name"], "description" => $row["description"], "parceluuid" => $row["parceluuid"], "parentestate" => $row["parentestate"], "snapshotuuid" => $row["snapshotuuid"], "simname" => $row["simname"], "posglobal" => $row["posglobal"], "parcelname" => $row["parcelname"], "classifiedflags" => $row["classifiedflags"], "priceforlisting" => $row["priceforlisting"]); } $response_xml = xmlrpc_encode(array('success' => True, 'errorMessage' => "", 'data' => $data)); print $response_xml; }
And that's bad. So we catch that issue here. */ if (function_exists($method)) { $output = $method($paramArray); } else { statusCode(501); $output = "Either you are requesting an incorrect method, or this node has not implemented this method."; } /* Set output type and encode. Current default is XML */ if (strcasecmp($outputFormat, "json") == 0) { header('Content-Type: text/javascript; charset=utf8'); $output = '(' . json_encode($output) . ');'; /* A trick I learned about JSON output. It needs those parens and the semicolon. */ } else { if (strcasecmp($outputFormat, "xml") == 0) { header('Content-Type: text/xml; charset=utf8'); $output = xmlrpc_encode($output); } else { if (strcasecmp($outputFormat, "txt") == 0) { header('Content-Type: text/text; charset=utf8'); $output = print_r($output); /* Improve this in the future. */ } else { header('Content-Type: text/xml; charset=utf8'); $output = xmlrpc_encode($output); } } } /* Send output to client. */ echo $output; /* EOF */
<?php if ($adodbrs->fetchMode == 'ADODB_FETCH_BOTH' || count($adodbrs->fields) == 2 * $adodbrs->FieldCount()) { for ($i = 0; $i < $numfields; $i++) { if ($adodbrs->fields[$i] === null) { $columns[$i] =& new xmlrpcval(''); } else { $columns[$i] =& xmlrpc_encode($adodbrs->fields[$i]); } } } else { foreach ($adodbrs->fields as $val) { if ($val === null) { $columns[] =& new xmlrpcval(''); } else { $columns[] =& xmlrpc_encode($val); } } }
/** * Encodes PHP data into XML data * @param mixed PHP data * @return string XML encoded PHP data */ public function encode($data) { return xmlrpc_encode($data); }
private function xmlrpc_fault($faultCode) { return xmlrpc_encode(['faultCode' => $faultCode, 'faultString' => $this->responses[$faultCode]]); }
<?php $response = xmlrpc_encode(3.24234); echo $response; $response = xmlrpc_encode(-3.24234); echo $response; $response = xmlrpc_encode('Is string'); echo $response;
/** * Optional XMLRPC error handler * * @param int $code * @param string $msg */ public static function error($code, $msg, array $options = null) { echo xmlrpc_encode(array("faultCode" => $code, "faultString" => $msg), array("encoding" => self::$encoding) + (array) $options); }
function i_whichToolkit($m) { global $xmlrpcName, $xmlrpcVersion, $SERVER_SOFTWARE, $xmlrpcStruct; $ret = array("toolkitDocsUrl" => "http://xmlrpc.usefulinc.com/php.html", "toolkitName" => $xmlrpcName, "toolkitVersion" => $xmlrpcVersion, "toolkitOperatingSystem" => $SERVER_SOFTWARE); return new xmlrpcresp(xmlrpc_encode($ret)); }
$encoder = new Encoder(); for ($i = 0; $i < $num_tests; $i++) { $value = $encoder->encode($data, array('auto_dates')); $out = $value->serialize(); } end_test('Data encoding (large array)', 'automatic encoding', $out); if (function_exists('xmlrpc_set_type')) { begin_test('Data encoding (large array)', 'xmlrpc-epi encoding'); for ($i = 0; $i < $num_tests; $i++) { for ($j = 0; $j < 10; $j++) { foreach ($keys as $k) { xmlrpc_set_type($data[$j][$k][4], 'datetime'); xmlrpc_set_type($data[$j][$k][8], 'datetime'); } } $out = xmlrpc_encode($data); } end_test('Data encoding (large array)', 'xmlrpc-epi encoding', $out); } // test 'old style' data decoding vs. 'automatic style' decoding $dummy = new Request(''); $out = new Response($value); $in = '<?xml version="1.0" ?>' . "\n" . $out->serialize(); begin_test('Data decoding (large array)', 'manual decoding'); for ($i = 0; $i < $num_tests; $i++) { $response = $dummy->ParseResponse($in, true); $value = $response->value(); $result = array(); foreach ($value as $val1) { $out = array(); foreach ($val1 as $name => $val) {
<?php $response = xmlrpc_encode(1); echo $response;