Схема
private mixed
constructXmlrpc (
$data )
Аргументы
| Аргумент |
Возможный тип |
Описание |
| $data |
— |
— |
Описание
Метод пока еще не документирован.
Исходный код
$type = gettype($data);
switch ($type) {
case 'boolean':
if ($data == true) {
$value = 1;
} else {
$value = false;
}
$xml = '<boolean>' . $value . '</boolean>';
break;
case 'integer':
$xml = '<int>' . (int)$data . '</int>';
break;
case 'double':
$xml = '<double>' . (float)$data . '</double>';
break;
case 'string':
$xml = '<string>' . htmlspecialchars($data) . '</string>';
break;
case 'array':
// is numeric ?
if ($data === array_values($data)) {
$xml = '<array><data>';
foreach ($data as $value) {
$xml .= '<value>' . $this->constructXmlrpc($value) . '</value>';
}
$xml .= '</data></array>';
} else {
// array is associative
$xml = '<struct>';
foreach ($data as $key => $value) {
$xml .= '<member>';
$xml .= ' <name>' . htmlspecialchars($key) . '</name>';
$xml .= ' <value>' . $this->constructXmlrpc($value) . '</value>';
$xml .= '</member>';
}
$xml .= '</struct>';
}
break;
default:
$xml = '<nil/>';
break;
}
return $xml;