Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-includes
/
IXR
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php class IXR_Value { var $data; var $type; function __construct($data, $type = false) { $this->data = $data; if (!$type) { $type = $this->calculateType(); } $this->type = $type; if ($type == 'struct') { foreach ($this->data as $key => $value) { $this->data[$key] = new IXR_Value($value); } } if ($type == 'array') { for ($i = 0, $j = count($this->data); $i < $j; $i++) { $this->data[$i] = new IXR_Value($this->data[$i]); } } } public function IXR_Value($data, $type = false) { self::__construct($data, $type); } function calculateType() { if ($this->data === true || $this->data === false) { return 'boolean'; } if (is_integer($this->data)) { return 'int'; } if (is_double($this->data)) { return 'double'; } if (is_object($this->data) && is_a($this->data, 'IXR_Date')) { return 'date'; } if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) { return 'base64'; } if (is_object($this->data)) { $this->data = get_object_vars($this->data); return 'struct'; } if (!is_array($this->data)) { return 'string'; } if ($this->isStruct($this->data)) { return 'struct'; } else { return 'array'; } } function getXml() { switch ($this->type) { case 'boolean': return '<boolean>' . ($this->data ? '1' : '0') . '</boolean>'; break; case 'int': return '<int>' . $this->data . '</int>'; break; case 'double': return '<double>' . $this->data . '</double>'; break; case 'string': return '<string>' . htmlspecialchars($this->data) . '</string>'; break; case 'array': $return = '<array><data>' . "\n"; foreach ($this->data as $item) { $return .= ' <value>' . $item->getXml() . "</value>\n"; } $return .= '</data></array>'; return $return; break; case 'struct': $return = '<struct>' . "\n"; foreach ($this->data as $name => $value) { $name = htmlspecialchars($name); $return .= " <member><name>{$name}</name><value>"; $return .= $value->getXml() . "</value></member>\n"; } $return .= '</struct>'; return $return; break; case 'date': case 'base64': return $this->data->getXml(); break; } return false; } function isStruct($array) { $expected = 0; foreach ($array as $key => $value) { if ((string) $key !== (string) $expected) { return true; } $expected++; } return false; } }