lib/xmlrpc.inc-Dateireferenz

gehe zum Quellcode dieser Datei

Klassen

class  xmlrpc_client
class  xmlrpcresp
class  xmlrpcmsg
class  xmlrpcval

Funktionen

 xmlrpc_encode_entitites ($data, $src_encoding='', $dest_encoding='')
 xmlrpc_se ($parser, $name, $attrs, $accept_single_vals=false)
 xml parser handler function for opening element tags
 xmlrpc_se_any ($parser, $name, $attrs)
 Used in decoding xml chunks that might represent single xmlrpc values.
 xmlrpc_ee ($parser, $name, $rebuild_xmlrpcvals=true)
 xml parser handler function for close element tags
 xmlrpc_ee_fast ($parser, $name)
 Used in decoding xmlrpc requests/responses without rebuilding xmlrpc values.
 xmlrpc_cd ($parser, $data)
 xml parser handler function for character data
 xmlrpc_dh ($parser, $data)
 iso8601_encode ($timet, $utc=0)
 iso8601_decode ($idate, $utc=0)
 php_xmlrpc_decode ($xmlrpc_val, $options=array())

Variablen

if(!function_exists('xml_parser_create')) $phpversion = phpversion()
if($phpversion[0]==
'4'&&$phpversion[2]< 2) 
$GLOBALS ['xmlrpcI4'] = 'i4'
 $GLOBALS ['xmlrpcInt'] = 'int'
 $GLOBALS ['xmlrpcBoolean'] = 'boolean'
 $GLOBALS ['xmlrpcDouble'] = 'double'
 $GLOBALS ['xmlrpcString'] = 'string'
 $GLOBALS ['xmlrpcDateTime'] = 'dateTime.iso8601'
 $GLOBALS ['xmlrpcBase64'] = 'base64'
 $GLOBALS ['xmlrpcArray'] = 'array'
 $GLOBALS ['xmlrpcStruct'] = 'struct'
 $GLOBALS ['xmlrpcValue'] = 'undefined'
 $GLOBALS ['xmlrpcTypes']
 $GLOBALS ['xmlrpc_valid_parents']
 $GLOBALS ['xmlrpcNull'] = 'null'
 $GLOBALS ['xmlrpcTypes']['null'] = 1
 $GLOBALS ['xmlEntities']
 $GLOBALS ['xml_iso88591_Entities'] = array()
 $GLOBALS ['xml_iso88591_Entities']['in'] = array()
 $GLOBALS ['xml_iso88591_Entities']['out'] = array()
for($i=0;$i< 32;$i++) for($i=160;$i
< 256;$i++) 
$GLOBALS ['xmlrpcerr']
 $GLOBALS ['xmlrpcstr']
 $GLOBALS ['xmlrpc_defencoding'] = 'UTF-8'
 $GLOBALS ['xmlrpc_internalencoding'] = 'ISO-8859-1'
 $GLOBALS ['xmlrpcName'] = 'XML-RPC for PHP'
 $GLOBALS ['xmlrpcVersion'] = '2.2.2'
 $GLOBALS ['xmlrpcerruser'] = 800
 $GLOBALS ['xmlrpcerrxml'] = 100
 $GLOBALS ['xmlrpc_backslash'] = chr(92).chr(92)
 $GLOBALS ['xmlrpc_null_extension'] = false
 $GLOBALS ['_xh'] = null


Dokumentation der Funktionen

iso8601_decode ( idate,
utc = 0 
)

Given an ISO8601 date string, return a timet in the localtime, or UTC

Parameter:
string $idate
int $utc either 0 or 1
Rückgabe:
int (datetime)

Definiert in Zeile 3217 der Datei xmlrpc.inc.

Wird benutzt von php_xmlrpc_decode().

iso8601_encode ( timet,
utc = 0 
)

Given a timestamp, return the corresponding ISO8601 encoded string.

Really, timezones ought to be supported but the XML-RPC spec says:

"Don't assume a timezone. It should be specified by the server in its documentation what assumptions it makes about timezones."

These routines always assume localtime unless $utc is set to 1, in which case UTC is assumed and an adjustment for locale is made when encoding

Parameter:
int $timet (timestamp)
int $utc (0 or 1)
Rückgabe:
string

Definiert in Zeile 3189 der Datei xmlrpc.inc.

php_xmlrpc_decode ( xmlrpc_val,
options = array() 
)

Takes an xmlrpc value in PHP xmlrpcval object format and translates it into native PHP types.

Works with xmlrpc message objects as input, too.

Given proper options parameter, can rebuild generic php object instances (provided those have been encoded to xmlrpc format using a corresponding option in php_xmlrpc_encode()) PLEASE NOTE that rebuilding php objects involves calling their constructor function. This means that the remote communication end can decide which php code will get executed on your server, leaving the door possibly open to 'php-injection' style of attacks (provided you have some classes defined on your server that might wreak havoc if instances are built outside an appropriate context). Make sure you trust the remote server/client before eanbling this!

Autor:
Dan Libby (dan@libby.com)
Parameter:
xmlrpcval $xmlrpc_val
array $options if 'decode_php_objs' is set in the options array, xmlrpc structs can be decoded into php objects
Rückgabe:
mixed

Noch zu erledigen:
should we raise a warning for class not found?

Definiert in Zeile 3255 der Datei xmlrpc.inc.

Benutzt iso8601_decode().

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

xmlrpc_cd ( parser,
data 
)

xml parser handler function for character data

Definiert in Zeile 774 der Datei xmlrpc.inc.

Benutzt $GLOBALS.

xmlrpc_dh ( parser,
data 
)

xml parser handler function for 'other stuff', ie. not char data or element start/end tag. In fact it only gets called on unknown entities...

Definiert in Zeile 802 der Datei xmlrpc.inc.

Benutzt $GLOBALS.

xmlrpc_ee ( parser,
name,
rebuild_xmlrpcvals = true 
)

xml parser handler function for close element tags

Noch zu erledigen:
this needs to treat correctly php-serialized objects, since std deserializing is done by php_xmlrpc_decode, which we will not be calling...

Noch zu erledigen:
: optimization creep - remove the if/elseif cycle below since the case() in which we are already did that

Noch zu erledigen:
check for failure of base64 decoding / catch warnings

Noch zu erledigen:
: find a better way of throwing an error than this!

Noch zu erledigen:
find a better way of throwing an error than this!

Definiert in Zeile 560 der Datei xmlrpc.inc.

Benutzt $GLOBALS.

Wird benutzt von xmlrpc_ee_fast().

xmlrpc_ee_fast ( parser,
name 
)

Used in decoding xmlrpc requests/responses without rebuilding xmlrpc values.

Definiert in Zeile 768 der Datei xmlrpc.inc.

Benutzt xmlrpc_ee().

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

xmlrpc_encode_entitites ( data,
src_encoding = '',
dest_encoding = '' 
)

Convert a string to the correct XML representation in a target charset To help correct communication of non-ascii chars inside strings, regardless of the charset used when sending requests, parsing them, sending responses and parsing responses, an option is to convert all non-ascii chars present in the message into their equivalent 'charset entity'. Charset entities enumerated this way are independent of the charset encoding used to transmit them, and all XML parsers are bound to understand them. Note that in the std case we are not sending a charset encoding mime type along with http headers, so we are bound by RFC 3023 to emit strict us-ascii.

Noch zu erledigen:
do a bit of basic benchmarking (strtr vs. str_replace)

make usage of iconv() or recode_string() or mb_string() where available

Noch zu erledigen:
shall we replace this with a (supposedly) faster str_replace?

Definiert in Zeile 276 der Datei xmlrpc.inc.

Benutzt $GLOBALS.

Wird benutzt von xmlrpcval::serializedata() und xmlrpc_server::serializeDebug().

xmlrpc_se ( parser,
name,
attrs,
accept_single_vals = false 
)

xml parser handler function for opening element tags

Noch zu erledigen:
optimization creep: save this check into a bool variable, instead of using count() every time: there is only a single top level element in xml anyway

Noch zu erledigen:
we could check for 2 VALUE elements inside a MEMBER or PARAM element

Noch zu erledigen:
we could check for 2 NAME elements inside a MEMBER element

INVALID ELEMENT: RAISE ISF so that it is later recognized!!!

Noch zu erledigen:
optimization creep: move this inside the big switch() above

Definiert in Zeile 408 der Datei xmlrpc.inc.

Benutzt $GLOBALS.

Wird benutzt von xmlrpc_se_any().

xmlrpc_se_any ( parser,
name,
attrs 
)

Used in decoding xml chunks that might represent single xmlrpc values.

Definiert in Zeile 554 der Datei xmlrpc.inc.

Benutzt xmlrpc_se().

Hier ist ein Graph der zeigt, was diese Funktion aufruft:


Variablen-Dokumentation

$GLOBALS['_xh'] = null

Definiert in Zeile 260 der Datei xmlrpc.inc.

$GLOBALS['xmlrpc_null_extension'] = false

Definiert in Zeile 247 der Datei xmlrpc.inc.

$GLOBALS['xmlrpc_backslash'] = chr(92).chr(92)

Veraltet:

Definiert in Zeile 244 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcerrxml'] = 100

Definiert in Zeile 239 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcerruser'] = 800

Definiert in Zeile 237 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcVersion'] = '2.2.2'

Definiert in Zeile 234 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcName'] = 'XML-RPC for PHP'

Definiert in Zeile 233 der Datei xmlrpc.inc.

$GLOBALS['xmlrpc_internalencoding'] = 'ISO-8859-1'

Definiert in Zeile 231 der Datei xmlrpc.inc.

$GLOBALS['xmlrpc_defencoding'] = 'UTF-8'

Definiert in Zeile 226 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcstr']

Initialisierung:

 array(
        'unknown_method'=>'Unknown method',
        'invalid_return'=>'Invalid return payload: enable debugging to examine incoming payload',
        'incorrect_params'=>'Incorrect parameters passed to method',
        'introspect_unknown'=>"Can't introspect: method unknown",
        'http_error'=>"Didn't receive 200 OK from remote server.",
        'no_data'=>'No data received from server.',
        'no_ssl'=>'No SSL support compiled in.',
        'curl_fail'=>'CURL error',
        'invalid_request'=>'Invalid request payload',
        'no_curl'=>'No CURL support compiled in.',
        'server_error'=>'Internal server error',
        'multicall_error'=>'Received from server invalid multicall response',
        'multicall_notstruct'=>'system.multicall expected struct',
        'multicall_nomethod'=>'missing methodName',
        'multicall_notstring'=>'methodName is not a string',
        'multicall_recursion'=>'recursive system.multicall forbidden',
        'multicall_noparams'=>'missing params',
        'multicall_notarray'=>'params is not an array',

        'cannot_decompress'=>'Received from server compressed HTTP and cannot decompress',
        'decompress_fail'=>'Received from server invalid compressed HTTP',
        'dechunk_fail'=>'Received from server invalid chunked HTTP',
        'server_cannot_decompress'=>'Received from client compressed HTTP request and cannot decompress',
        'server_decompress_fail'=>'Received from client invalid compressed HTTP request'
        )

Definiert in Zeile 196 der Datei xmlrpc.inc.

for ($i=0;$i< 32;$i++) for ($i=160;$i< 256;$i++) $GLOBALS['xmlrpcerr']

Initialisierung:

 array(
        'unknown_method'=>1,
        'invalid_return'=>2,
        'incorrect_params'=>3,
        'introspect_unknown'=>4,
        'http_error'=>5,
        'no_data'=>6,
        'no_ssl'=>7,
        'curl_fail'=>8,
        'invalid_request'=>15,
        'no_curl'=>16,
        'server_error'=>17,
        'multicall_error'=>18,
        'multicall_notstruct'=>9,
        'multicall_nomethod'=>10,
        'multicall_notstring'=>11,
        'multicall_recursion'=>12,
        'multicall_noparams'=>13,
        'multicall_notarray'=>14,

        'cannot_decompress'=>103,
        'decompress_fail'=>104,
        'dechunk_fail'=>105,
        'server_cannot_decompress'=>106,
        'server_decompress_fail'=>107
        )
Noch zu erledigen:
add to iso table the characters from cp_1252 range, i.e. 128 to 159? These will NOT be present in true ISO-8859-1, but will save the unwary windows user from sending junk (though no luck when reciving them...)

Definiert in Zeile 169 der Datei xmlrpc.inc.

$GLOBALS['xml_iso88591_Entities']['out'] = array()

Definiert in Zeile 136 der Datei xmlrpc.inc.

$GLOBALS['xml_iso88591_Entities']['in'] = array()

Definiert in Zeile 135 der Datei xmlrpc.inc.

$GLOBALS['xml_iso88591_Entities'] = array()

Definiert in Zeile 134 der Datei xmlrpc.inc.

$GLOBALS['xmlEntities']

Initialisierung:

array(
                'amp'  => '&',
                'quot' => '"',
                'lt'   => '<',
                'gt'   => '>',
                'apos' => "'"
        )
Veraltet:

Definiert in Zeile 124 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcTypes']['null'] = 1

Definiert in Zeile 120 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcNull'] = 'null'

Definiert in Zeile 119 der Datei xmlrpc.inc.

$GLOBALS['xmlrpc_valid_parents']

Initialisierung:

 array(
                'VALUE' => array('MEMBER', 'DATA', 'PARAM', 'FAULT'),
                'BOOLEAN' => array('VALUE'),
                'I4' => array('VALUE'),
                'INT' => array('VALUE'),
                'STRING' => array('VALUE'),
                'DOUBLE' => array('VALUE'),
                'DATETIME.ISO8601' => array('VALUE'),
                'BASE64' => array('VALUE'),
                'MEMBER' => array('STRUCT'),
                'NAME' => array('MEMBER'),
                'DATA' => array('ARRAY'),
                'ARRAY' => array('VALUE'),
                'STRUCT' => array('VALUE'),
                'PARAM' => array('PARAMS'),
                'METHODNAME' => array('METHODCALL'),
                'PARAMS' => array('METHODCALL', 'METHODRESPONSE'),
                'FAULT' => array('METHODRESPONSE'),
                'NIL' => array('VALUE') 
        )

Definiert in Zeile 97 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcTypes']

Initialisierung:

array(
                $GLOBALS['xmlrpcI4']       => 1,
                $GLOBALS['xmlrpcInt']      => 1,
                $GLOBALS['xmlrpcBoolean']  => 1,
                $GLOBALS['xmlrpcString']   => 1,
                $GLOBALS['xmlrpcDouble']   => 1,
                $GLOBALS['xmlrpcDateTime'] => 1,
                $GLOBALS['xmlrpcBase64']   => 1,
                $GLOBALS['xmlrpcArray']    => 2,
                $GLOBALS['xmlrpcStruct']   => 3
        )

Definiert in Zeile 85 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcValue'] = 'undefined'

Definiert in Zeile 83 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcStruct'] = 'struct'

Definiert in Zeile 82 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcArray'] = 'array'

Definiert in Zeile 81 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcBase64'] = 'base64'

Definiert in Zeile 80 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcDateTime'] = 'dateTime.iso8601'

Definiert in Zeile 79 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcString'] = 'string'

Definiert in Zeile 78 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcDouble'] = 'double'

Definiert in Zeile 77 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcBoolean'] = 'boolean'

Definiert in Zeile 76 der Datei xmlrpc.inc.

$GLOBALS['xmlrpcInt'] = 'int'

Definiert in Zeile 75 der Datei xmlrpc.inc.

if ($phpversion[0]== '4'&&$phpversion[2]< 2) $GLOBALS['xmlrpcI4'] = 'i4'

if (!function_exists('xml_parser_create')) $phpversion = phpversion()

Definiert in Zeile 49 der Datei xmlrpc.inc.

Copyright © 2003 - 2009 MyOOS [Shopsystem]. All rights reserved.
MyOOS [Shopsystem] is Free Software released under the GNU/GPL License.

Webmaster: info@r23.de (Impressum)
doxygen