[ Index ] |
|
Code source de Joomla 1.0.13 |
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['&'] = "'"; 180 return $trans; 181 } //getInverseTranslationTable 182 } //dom_xmlrpc_utilities 183 184 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 14:43:32 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |