Current Path : /var/www/html/clients/kampol.e-nk.ru/OLD/includes/domit/ |
Current File : /var/www/html/clients/kampol.e-nk.ru/OLD/includes/domit/dom_xmlrpc_utilities.php |
<?php /** * dom_xmlrpc_utilities are a set of static utilities for handling XML-RPC * @package dom-xmlrpc * @copyright (C) 2004 John Heinstein. All rights reserved * @license http://www.gnu.org/copyleft/lesser.html LGPL License * @author John Heinstein <johnkarl@nbnet.nb.ca> * @link http://www.engageinteractive.com/dom_xmlrpc/ DOM XML-RPC Home Page * DOM XML-RPC is Free Software **/ if (!defined('DOM_XMLRPC_INCLUDE_PATH')) { define('DOM_XMLRPC_INCLUDE_PATH', (dirname(__FILE__) . "/")); } /** * A set of static utilities for handling XML-RPC * * @package dom-xmlrpc * @author John Heinstein <johnkarl@nbnet.nb.ca> */ class dom_xmlrpc_utilities { /** * Strips the HTTP headers from the method response * @param string The method response, including headers * @return string The method response with headers stripped */ function stripHeader($myResponse) { $body = ''; $total = strlen($myResponse); for ($i = 0; $i < $total; $i++) { if ($myResponse{$i} == '<') { $body = substr($myResponse, $i); break; } } return $body; } //stripHeader /** * Determines the type of a scalar value * @param mixed The scalar value * @return string The type of the scalar value */ function getScalarTypeFromValue(&$value) { require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php'); if (is_string($value)) { return DOM_XMLRPC_TYPE_STRING; } else if (is_int($value)) { return DOM_XMLRPC_TYPE_INT; } else if (is_float($value)) { return DOM_XMLRPC_TYPE_DOUBLE; } else if (is_bool($value)) { return DOM_XMLRPC_TYPE_BOOLEAN; } else if (is_object($value)) { require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_datetime_iso8601.php'); require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php'); if (get_class($value) == 'dom_xmlrpc_datetime_iso8601') { return DOM_XMLRPC_TYPE_DATETIME; } else if (get_class($value) == 'dom_xmlrpc_base64') { return DOM_XMLRPC_TYPE_BASE64; } } return ''; } //getScalarTypeFromValue /** * Determines the type of any XML-RPC value * @param mixed The XML-RPC value * @return string The type of the XML-RPC value */ function getTypeFromValue(&$value) { require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php'); $scalarType = dom_xmlrpc_utilities::getScalarTypeFromValue($value); if ($scalarType == '') { require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_struct.php'); if (is_array($value)) { if (dom_xmlrpc_utilities::isAssociativeArray($value)) { return DOM_XMLRPC_TYPE_STRUCT; } else { return DOM_XMLRPC_TYPE_ARRAY; } } else if (get_class($value) == 'dom_xmlrpc_struct') { return DOM_XMLRPC_TYPE_STRUCT; } else if(is_object($value)) { return DOM_XMLRPC_TYPE_STRUCT; } } else { return $scalarType; } } //getTypeFromValue /** * Converts the given scalar value to its XML-RPC equivalent * @param mixed The scalar value * @param string The type of the scalar value * @return string The XML-RPC equivalent of the scalar value */ function getScalarValue(&$value, $type) { require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php'); switch($type) { case DOM_XMLRPC_TYPE_BOOLEAN: return (($value == true) ? '1' : '0'); break; case DOM_XMLRPC_TYPE_DATETIME: require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_datetime_iso8601.php'); if (is_object($value) && (get_class($value) == 'dom_xmlrpc_datetime_iso8601')) { return ($value->getDateTime_iso()); } break; case DOM_XMLRPC_TYPE_BASE64: require_once(DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php'); if (is_object($value) && (get_class($value) == 'dom_xmlrpc_base64')) { return ($value->getEncoded()); } break; default: return ('' . $value); } return ('' . $value); } //getScalarValue /** * Determines whether an array is associative or not * * Note: PHP converts string keys that look like integers * to actual integer keys. This function will thus NOT trap * $myArray = array('1'=>'blah'); * DON'T use integer string keys, * UNLESS you wrap them in a dom_xmlrpc_struct object * The following IS considered associative, however: * $myArray = array('1.2'=>'blah'); * @param array The array to be tested * @return boolean True if the array is associative */ function isAssociativeArray(&$myArray) { reset($myArray); $myKey = key($myArray); if (is_string($myKey)) { return true; } return false; } //isAssociativeArray /** * Flips the html translation table * * @return array The flipped html translation table */ function getInverseTranslationTable() { $trans = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES); $trans = array_flip($trans); $trans['&'] = "'"; return $trans; } //getInverseTranslationTable } //dom_xmlrpc_utilities ?>