Edit File by line
/home/zeestwma/ajeebong.../wp-inclu.../IXR
File: class-IXR-value.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* IXR_Value
[2] Fix | Delete
*
[3] Fix | Delete
* @package IXR
[4] Fix | Delete
* @since 1.5.0
[5] Fix | Delete
*/
[6] Fix | Delete
class IXR_Value {
[7] Fix | Delete
var $data;
[8] Fix | Delete
var $type;
[9] Fix | Delete
[10] Fix | Delete
/**
[11] Fix | Delete
* PHP5 constructor.
[12] Fix | Delete
*/
[13] Fix | Delete
function __construct( $data, $type = false )
[14] Fix | Delete
{
[15] Fix | Delete
$this->data = $data;
[16] Fix | Delete
if (!$type) {
[17] Fix | Delete
$type = $this->calculateType();
[18] Fix | Delete
}
[19] Fix | Delete
$this->type = $type;
[20] Fix | Delete
if ($type == 'struct') {
[21] Fix | Delete
// Turn all the values in the array in to new IXR_Value objects
[22] Fix | Delete
foreach ($this->data as $key => $value) {
[23] Fix | Delete
$this->data[$key] = new IXR_Value($value);
[24] Fix | Delete
}
[25] Fix | Delete
}
[26] Fix | Delete
if ($type == 'array') {
[27] Fix | Delete
for ($i = 0, $j = count($this->data); $i < $j; $i++) {
[28] Fix | Delete
$this->data[$i] = new IXR_Value($this->data[$i]);
[29] Fix | Delete
}
[30] Fix | Delete
}
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* PHP4 constructor.
[35] Fix | Delete
*/
[36] Fix | Delete
public function IXR_Value( $data, $type = false ) {
[37] Fix | Delete
self::__construct( $data, $type );
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
function calculateType()
[41] Fix | Delete
{
[42] Fix | Delete
if ($this->data === true || $this->data === false) {
[43] Fix | Delete
return 'boolean';
[44] Fix | Delete
}
[45] Fix | Delete
if (is_integer($this->data)) {
[46] Fix | Delete
return 'int';
[47] Fix | Delete
}
[48] Fix | Delete
if (is_double($this->data)) {
[49] Fix | Delete
return 'double';
[50] Fix | Delete
}
[51] Fix | Delete
[52] Fix | Delete
// Deal with IXR object types base64 and date
[53] Fix | Delete
if (is_object($this->data) && is_a($this->data, 'IXR_Date')) {
[54] Fix | Delete
return 'date';
[55] Fix | Delete
}
[56] Fix | Delete
if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
[57] Fix | Delete
return 'base64';
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
// If it is a normal PHP object convert it in to a struct
[61] Fix | Delete
if (is_object($this->data)) {
[62] Fix | Delete
$this->data = get_object_vars($this->data);
[63] Fix | Delete
return 'struct';
[64] Fix | Delete
}
[65] Fix | Delete
if (!is_array($this->data)) {
[66] Fix | Delete
return 'string';
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
// We have an array - is it an array or a struct?
[70] Fix | Delete
if ($this->isStruct($this->data)) {
[71] Fix | Delete
return 'struct';
[72] Fix | Delete
} else {
[73] Fix | Delete
return 'array';
[74] Fix | Delete
}
[75] Fix | Delete
}
[76] Fix | Delete
[77] Fix | Delete
function getXml()
[78] Fix | Delete
{
[79] Fix | Delete
// Return XML for this value
[80] Fix | Delete
switch ($this->type) {
[81] Fix | Delete
case 'boolean':
[82] Fix | Delete
return '<boolean>'.(($this->data) ? '1' : '0').'</boolean>';
[83] Fix | Delete
break;
[84] Fix | Delete
case 'int':
[85] Fix | Delete
return '<int>'.$this->data.'</int>';
[86] Fix | Delete
break;
[87] Fix | Delete
case 'double':
[88] Fix | Delete
return '<double>'.$this->data.'</double>';
[89] Fix | Delete
break;
[90] Fix | Delete
case 'string':
[91] Fix | Delete
return '<string>'.htmlspecialchars($this->data).'</string>';
[92] Fix | Delete
break;
[93] Fix | Delete
case 'array':
[94] Fix | Delete
$return = '<array><data>'."\n";
[95] Fix | Delete
foreach ($this->data as $item) {
[96] Fix | Delete
$return .= ' <value>'.$item->getXml()."</value>\n";
[97] Fix | Delete
}
[98] Fix | Delete
$return .= '</data></array>';
[99] Fix | Delete
return $return;
[100] Fix | Delete
break;
[101] Fix | Delete
case 'struct':
[102] Fix | Delete
$return = '<struct>'."\n";
[103] Fix | Delete
foreach ($this->data as $name => $value) {
[104] Fix | Delete
$name = htmlspecialchars($name);
[105] Fix | Delete
$return .= " <member><name>$name</name><value>";
[106] Fix | Delete
$return .= $value->getXml()."</value></member>\n";
[107] Fix | Delete
}
[108] Fix | Delete
$return .= '</struct>';
[109] Fix | Delete
return $return;
[110] Fix | Delete
break;
[111] Fix | Delete
case 'date':
[112] Fix | Delete
case 'base64':
[113] Fix | Delete
return $this->data->getXml();
[114] Fix | Delete
break;
[115] Fix | Delete
}
[116] Fix | Delete
return false;
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
/**
[120] Fix | Delete
* Checks whether or not the supplied array is a struct or not
[121] Fix | Delete
*
[122] Fix | Delete
* @param array $array
[123] Fix | Delete
* @return bool
[124] Fix | Delete
*/
[125] Fix | Delete
function isStruct($array)
[126] Fix | Delete
{
[127] Fix | Delete
$expected = 0;
[128] Fix | Delete
foreach ($array as $key => $value) {
[129] Fix | Delete
if ((string)$key !== (string)$expected) {
[130] Fix | Delete
return true;
[131] Fix | Delete
}
[132] Fix | Delete
$expected++;
[133] Fix | Delete
}
[134] Fix | Delete
return false;
[135] Fix | Delete
}
[136] Fix | Delete
}
[137] Fix | Delete
[138] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function