xmlrpc_message_parse

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/xmlrpc.inc, строка 157

Версии
5 – 6
xmlrpc_message_parse(&$xmlrpc_message)

Parse an XML-RPC message. If parsing fails, the faultCode and faultString will be added to the message object.

Параметры

$xmlrpc_message Object generated by xmlrpc_message()

Возвращаемое значение

TRUE if parsing succeeded; FALSE otherwise

▾ 2 функции вызывают xmlrpc_message_parse()

xmlrpc_server in includes/xmlrpcs.inc
The main entry point for XML-RPC requests.
_xmlrpc in includes/xmlrpc.inc
Execute an XML remote procedural call. This is private function; call xmlrpc() in common.inc instead of this function.

Код

<?php
function xmlrpc_message_parse(&$xmlrpc_message) {
  // First remove the XML declaration
  $xmlrpc_message->message = preg_replace('/<\?xml(.*)?\?'.'>/', '', $xmlrpc_message->message);
  if (trim($xmlrpc_message->message) == '') {
    return FALSE;
  }
  $xmlrpc_message->_parser = xml_parser_create();
  // Set XML parser to take the case of tags into account
  xml_parser_set_option($xmlrpc_message->_parser, XML_OPTION_CASE_FOLDING, FALSE);
  // Set XML parser callback functions
  /* Do not set object. $xmlrpc_message does not have member functions any more
  xml_set_object($xmlrpc_message->_parser, $xmlrpc_message); */
  xml_set_element_handler($xmlrpc_message->_parser, 'xmlrpc_message_tag_open', 'xmlrpc_message_tag_close');
  xml_set_character_data_handler($xmlrpc_message->_parser, 'xmlrpc_message_cdata');
  xmlrpc_message_set($xmlrpc_message);
  if (!xml_parse($xmlrpc_message->_parser, $xmlrpc_message->message)) {
    return FALSE;
  }
  xml_parser_free($xmlrpc_message->_parser);
  // Grab the error messages, if any
  $xmlrpc_message = xmlrpc_message_get();
  if ($xmlrpc_message->messagetype == 'fault') {
    $xmlrpc_message->fault_code = $xmlrpc_message->params[0]['faultCode'];
    $xmlrpc_message->fault_string = $xmlrpc_message->params[0]['faultString'];
  }
  return TRUE;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему