downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Extensii doar pentru Windows> <xmlrpc_server_register_method
Last updated: Fri, 06 Nov 2009

view this page in

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_typeStabileşte tipul xmlrpc, base64 sau datetime, pentru o valoare string PHP

Descrierea

bool xmlrpc_set_type ( string &$value , string $type )

Stabilește tipul xmlrpc, base64 sau datetime, pentru o valoare-șir PHP.

Avertizare

Această funcţie este EXPERIMENTALĂ. Comportamentul acestei funcţii, denumirea sa şi orice alte aspecte documentate în privinţa acestei funcţii pot să fie modificate fără preaviz într-o versiune viitoare a PHP. Utilizaţi această funcţie la propriul risc.

Parametri

value

Valoarea în care se stabileşte tipul

type

'base64' sau 'datetime'

Valorile întroarse

Întoarce valoarea TRUE în cazul succesului sau FALSE în cazul eşecului. În cazul succesului, value este transformat într-un obiect.

Exemple

Example #1 Un exemplu xmlrpc_set_type()

<?php

$params 
date("Ymd\TH:i:s"time());
xmlrpc_set_type($params'datetime');
echo 
xmlrpc_encode($params);

?>

Exemplul de mai sus va afişa ceva similar cu:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Erori/Excepţii

Emite un E_WARNING cu tipul nesusţinut de XMLRPC.



add a note add a note User Contributed Notes
xmlrpc_set_type
bmatheny at mobocracy dot net
24-Mar-2006 11:08
The following code segfaults some older (pre 5.1.2) versions of PHP:

$foo = date('c', time());
xmlrpc_set_type($foo, 'datetime');

Please upgrade before reporting as a bug.
ncuxxx at gmail dot com
22-Dec-2005 08:59
I write tutorial.
Look it.
http://2pik.com/article/1/8.html

It`s very useful for russian users :)
And also usefol for LJ. :)
shem((at))etkDOTca [aka.Przemyslaw Szot]
30-Oct-2004 09:23
Once you use the xmlrpc_set_type function, the data is encoded into a PHP object.  In your XMLRPC server, in order to access the data you must be able to access the necessary part of the object.

So.. to expend on the example above:

<---------- CLIENT ---------->
$string = "My logging event.";
$date = "20030115T12:22:37"; // Must be this format
$binary = fread($fp, 128);
xmlrpc_set_type(&$date, "datetime");
xmlrpc_set_type(&$binary, "base64");
$xmlrpcReq = xmlrpc_encode_request("log.data", array($string, $date, $binary));

In order to retrieve the binary file data you would need to get the scalar portion of the object:

<---------- SERVER ------------>
$string=$params[0];
$date_obj=$params[1];
$binary_obj=$params[2];

$date=$date_obj->scalar;
$binary_data=$binary_obj->scalar;

// Then you can proceed to write the binary
fwrite($handle,$binary_data);
kelly at seankelly dot biz
28-Dec-2002 03:53
The problem is that PHP has a string type which is also used to hold binary data and dates.  But XML-RPC defines three separate types for strings, binary data, and dates.  How do you tell how you want strings encoded?  That's where this function comes in.

Suppose the XML-RPC method "log.data" took a string, a date, and a binary object.  To tell XML-RPC that the date (which is a PHP string) is a really a date and that the binary data (which is also a PHP string) is really binary data, try:

$string = "My logging event.";
$date = "20030115T12:22:37"; // Must be this format
$binary = fread($fp, 128);
xmlrpc_set_type(&$date, "datetime");
xmlrpc_set_type(&$binary, "base64");
$xmlrpcReq = xmlrpc_encode_request("log.data", array($string, $date, $binary));

Note the reference passing in the calls to xmlrpc_set_type; that enables the function to change the values from strings into what xmlrpc_encode/_request expects (which are objects that include a bonus field that tells the desired XML-RPC type).

 
show source | credits | stats | sitemap | contact | advertising | mirror sites