[ Index ]
 

Code source de Joomla 1.0.13

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/includes/domit/ -> dom_xmlrpc_utilities.php (source)

   1  <?php
   2  /**
   3  * dom_xmlrpc_utilities are a set of static utilities for handling XML-RPC
   4  * @package dom-xmlrpc
   5  * @copyright (C) 2004 John Heinstein. All rights reserved
   6  * @license http://www.gnu.org/copyleft/lesser.html LGPL License
   7  * @author John Heinstein <johnkarl@nbnet.nb.ca>
   8  * @link http://www.engageinteractive.com/dom_xmlrpc/ DOM XML-RPC Home Page
   9  * DOM XML-RPC is Free Software
  10  **/
  11  
  12  if (!defined('DOM_XMLRPC_INCLUDE_PATH')) {
  13      define('DOM_XMLRPC_INCLUDE_PATH', (dirname(__FILE__) . "/"));
  14  }
  15  
  16  /**
  17  * A set of static utilities for handling XML-RPC
  18  *
  19  * @package dom-xmlrpc
  20  * @author John Heinstein <johnkarl@nbnet.nb.ca>
  21  */
  22  class dom_xmlrpc_utilities {
  23  
  24      /**
  25      * Strips the HTTP headers from the method response
  26      * @param string The method response, including headers
  27      * @return string The method response with headers stripped
  28      */
  29  	function stripHeader($myResponse) {
  30          $body = '';
  31          $total = strlen($myResponse);
  32  
  33          for ($i = 0; $i < $total; $i++) {
  34              if ($myResponse{$i} == '<') {
  35                  $body = substr($myResponse, $i);
  36                  break;
  37              }
  38          }
  39  
  40          return $body;
  41      } //stripHeader
  42  
  43      /**
  44      * Determines the type of a scalar value
  45      * @param mixed The scalar value
  46      * @return string The type of the scalar value
  47      */
  48  	function getScalarTypeFromValue(&$value) {
  49          require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php');
  50  
  51          if (is_string($value)) {
  52              return DOM_XMLRPC_TYPE_STRING;
  53          }
  54          else if (is_int($value)) {
  55              return DOM_XMLRPC_TYPE_INT;
  56          }
  57          else if (is_float($value)) {
  58              return DOM_XMLRPC_TYPE_DOUBLE;
  59          }
  60          else if (is_bool($value)) {
  61              return DOM_XMLRPC_TYPE_BOOLEAN;
  62          }
  63          else if (is_object($value)) {
  64              require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_datetime_iso8601.php');
  65              require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php');
  66  
  67              if (get_class($value) == 'dom_xmlrpc_datetime_iso8601') {
  68                  return DOM_XMLRPC_TYPE_DATETIME;
  69              }
  70              else if (get_class($value) == 'dom_xmlrpc_base64') {
  71                  return DOM_XMLRPC_TYPE_BASE64;
  72              }
  73          }
  74  
  75          return '';
  76      } //getScalarTypeFromValue
  77  
  78      /**
  79      * Determines the type of any XML-RPC value
  80      * @param mixed The XML-RPC value
  81      * @return string The type of the XML-RPC value
  82      */
  83  	function getTypeFromValue(&$value) {
  84          require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php');
  85          $scalarType = dom_xmlrpc_utilities::getScalarTypeFromValue($value);
  86  
  87          if ($scalarType == '') {
  88              require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_struct.php');
  89  
  90              if (is_array($value)) {
  91                  if (dom_xmlrpc_utilities::isAssociativeArray($value)) {
  92                      return DOM_XMLRPC_TYPE_STRUCT;
  93                  }
  94                  else {
  95                      return DOM_XMLRPC_TYPE_ARRAY;
  96                  }
  97              }
  98              else if (get_class($value) == 'dom_xmlrpc_struct') {
  99                  return DOM_XMLRPC_TYPE_STRUCT;
 100              }
 101              else if(is_object($value)) {
 102                  return DOM_XMLRPC_TYPE_STRUCT;
 103              }
 104          }
 105          else {
 106              return $scalarType;
 107          }
 108      } //getTypeFromValue
 109  
 110      /**
 111      * Converts the given scalar value to its XML-RPC equivalent
 112      * @param mixed The scalar value
 113      * @param string The type of the scalar value
 114      * @return string The XML-RPC equivalent of the scalar value
 115      */
 116  	function getScalarValue(&$value, $type) {
 117          require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_constants.php');
 118  
 119          switch($type) {
 120              case DOM_XMLRPC_TYPE_BOOLEAN:
 121                  return (($value == true) ? '1' : '0');
 122                  break;
 123  
 124              case DOM_XMLRPC_TYPE_DATETIME:
 125                  require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_datetime_iso8601.php');
 126  
 127                  if (is_object($value) && (get_class($value) == 'dom_xmlrpc_datetime_iso8601')) {
 128                      return ($value->getDateTime_iso());
 129                  }
 130                  break;
 131  
 132              case DOM_XMLRPC_TYPE_BASE64:
 133                  require_once (DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php');
 134  
 135                  if (is_object($value) && (get_class($value) == 'dom_xmlrpc_base64')) {
 136                      return ($value->getEncoded());
 137                  }
 138                  break;
 139  
 140              default:
 141                  return ('' . $value);
 142          }
 143  
 144          return ('' . $value);
 145      } //getScalarValue
 146  
 147      /**
 148      * Determines whether an array is associative or not
 149      *
 150      * Note: PHP converts string keys that look like integers
 151      * to actual integer keys. This function will thus NOT trap
 152      * $myArray = array('1'=>'blah');
 153      * DON'T use integer string keys,
 154      * UNLESS you wrap them in a dom_xmlrpc_struct object
 155      * The following IS considered associative, however:
 156      * $myArray = array('1.2'=>'blah');
 157      * @param array The array to be tested
 158      * @return boolean True if the array is associative
 159      */
 160  	function isAssociativeArray(&$myArray) {
 161          reset($myArray);
 162          $myKey = key($myArray);
 163  
 164          if (is_string($myKey)) {
 165              return true;
 166          }
 167  
 168          return false;
 169      } //isAssociativeArray
 170  
 171      /**
 172      * Flips the html translation table
 173      *
 174      * @return array The flipped html translation table
 175      */
 176  	function getInverseTranslationTable() {
 177          $trans = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
 178          $trans = array_flip($trans);
 179          $trans['&amp;'] = "'";
 180          return $trans;
 181      } //getInverseTranslationTable
 182  } //dom_xmlrpc_utilities
 183  
 184  ?>


Généré le : Wed Nov 21 14:43:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics