'.($data ? '1' : '0').'';
case 'integer':
return ''.$data.'';
case 'double':
return ''.$data.'';
case 'string':
return ''.htmlspecialchars($data).'';
case 'object':
case 'array':
$is_array = range(0, count($data) - 1) === array_keys($data);
if ($is_array)
{
$return = ''."\n";
foreach ($data as $item)
{
$return .= ' '.xmlrpc_encode($item)."\n";
}
$return .= '';
}
else
{
$return = ''."\n";
foreach ($data as $name => $value)
{
$name = htmlspecialchars($name);
$return .= " $name";
$return .= xmlrpc_encode($value)."\n";
}
$return .= '';
}
return $return;
}
}
class PwgXmlRpcEncoder extends PwgResponseEncoder
{
function encodeResponse($response)
{
$respClass = strtolower( get_class($response) );
if ($respClass=='pwgerror')
{
$code = $response->code();
$msg = htmlspecialchars($response->message());
$ret = <<
faultCode
{$code}
faultString
{$msg}
EOD;
return $ret;
}
parent::flattenResponse($response);
$ret = xmlrpc_encode($response);
$ret = <<
$ret
EOD;
return $ret;
}
function getContentType()
{
return 'text/xml';
}
}
?>