コード例 #1
0
 /**
  * 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;
     }
 }
コード例 #2
0
 /**
  * Generates an XML-RPC param from the value and adds it to the method params
  * @param mixed The value to be converted to XML-RPC notation
  */
 function create(&$value, $type = '')
 {
     $data = '';
     if ($type == '') {
         require_once DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_utilities.php';
         $type = dom_xmlrpc_utilities::getTypeFromValue($value);
     }
     switch ($type) {
         case DOM_XMLRPC_TYPE_STRING:
         case DOM_XMLRPC_TYPE_INT:
         case DOM_XMLRPC_TYPE_I4:
         case DOM_XMLRPC_TYPE_DOUBLE:
         case DOM_XMLRPC_TYPE_BOOLEAN:
         case DOM_XMLRPC_TYPE_BASE64:
         case DOM_XMLRPC_TYPE_DATETIME:
             $data .= $this->createScalar($value, $type);
             break;
         case DOM_XMLRPC_TYPE_STRUCT:
             $data .= $this->createStruct($value, $type);
             break;
         case DOM_XMLRPC_TYPE_ARRAY:
             $data .= $this->createArray($value, $type);
             break;
     }
     return $data;
 }
コード例 #3
0
 /**
  * Converts PHP arrays to stdclass objects
  * @param array The PHP array
  * @return object A stdclass object
  */
 function &arraysToObjects(&$myArray)
 {
     foreach ($myArray as $key => $value) {
         $currItem =& $myArray[$key];
         if (is_array($currItem)) {
             $currItem =& $this->arraysToObjects($currItem);
         }
     }
     if (dom_xmlrpc_utilities::isAssociativeArray($myArray)) {
         $obj = new stdclass();
         foreach ($myArray as $key => $value) {
             $obj->{$key} =& $myArray[$value];
         }
         return $obj;
     } else {
         return $myArray;
     }
 }
コード例 #4
0
 /**
  * Returns the type of the specified param
  * @param mixed The param to be tested
  * @return string The type of the specified param
  */
 function getParamType($param)
 {
     require_once DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_utilities.php';
     return dom_xmlrpc_utilities::getTypeFromValue($param);
 }