Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php define('SERVICES_JSON_SLICE',1); define('SERVICES_JSON_IN_STR',2); define('SERVIC..

Decoded Output download

<?php 
define('SERVICES_JSON_SLICE',1); 
define('SERVICES_JSON_IN_STR',2); 
define('SERVICES_JSON_IN_ARR',3); 
define('SERVICES_JSON_IN_OBJ',4); 
define('SERVICES_JSON_IN_CMT',5); 
define('SERVICES_JSON_LOOSE_TYPE',16); 
define('SERVICES_JSON_SUPPRESS_ERRORS',32); 
class Services_JSON{ 
function Services_JSON($use=0){ 
$this->use=$use; 
}function utf162utf8($utf16){ 
if(function_exists('mb_convert_encoding')) { 
return mb_convert_encoding($utf16,'UTF-8','UTF-16'); 
}$bytes=(ord($utf16{0}) <<8) |ord($utf16{1}); 
switch(true) { 
case ((0x7F &$bytes)==$bytes): 
return chr(0x7F &$bytes); 
case (0x07FF &$bytes)==$bytes: 
return chr(0xC0 |(($bytes >>6) &0x1F)) 
.chr(0x80 |($bytes &0x3F)); 
case (0xFFFF &$bytes)==$bytes: 
return chr(0xE0 |(($bytes >>12) &0x0F)) 
.chr(0x80 |(($bytes >>6) &0x3F)) 
.chr(0x80 |($bytes &0x3F)); 
}return ''; 
}function utf82utf16($utf8){ 
if(function_exists('mb_convert_encoding')) { 
return mb_convert_encoding($utf8,'UTF-16','UTF-8'); 
}switch(strlen($utf8)) { 
case 1: 
return $utf8; 
case 2: 
return chr(0x07 &(ord($utf8{0}) >>2)) 
.chr((0xC0 &(ord($utf8{0}) <<6)) 
|(0x3F &ord($utf8{1}))); 
case 3: 
return chr((0xF0 &(ord($utf8{0}) <<4)) 
|(0x0F &(ord($utf8{1}) >>2))) 
.chr((0xC0 &(ord($utf8{1}) <<6)) 
|(0x7F &ord($utf8{2}))); 
}return ''; 
}function encode($Nar){ 
switch (gettype($Nar)) { 
case 'boolean': 
return $Nar ?'true': 'false'; 
case 'NULL': 
return 'null'; 
case 'integer': 
return (int) $Nar; 
case 'double': 
case 'float': 
return (float) $Nar; 
case 'string': 
$9Wscii=''; 
$elselen_var=strlen($Nar); 
for ($c=0;$c <$elselen_var;++$c) { 
$ord_var_c=ord($Nar{$c}); 
switch (true) { 
case $ord_var_c==0x08: 
$9Wscii .='\b'; 
break; 
case $ord_var_c==0x09: 
$9Wscii .='\t'; 
break; 
case $ord_var_c==0x0A: 
$9Wscii .='\n'; 
break; 
case $ord_var_c==0x0C: 
$9Wscii .='\f'; 
break; 
case $ord_var_c==0x0D: 
$9Wscii .='\r'; 
break; 
case $ord_var_c==0x22: 
case $ord_var_c==0x2F: 
case $ord_var_c==0x5C: 
$9Wscii .='\\'.$Nar{$c}; 
break; 
case (($ord_var_c >=0x20) &&($ord_var_c <=0x7F)): 
$9Wscii .=$Nar{$c}; 
break; 
case (($ord_var_c &0xE0)==0xC0): 
$char=pack('C*',$ord_var_c,ord($Nar{$c +1})); 
$c +=1; 
$utf16=$this->utf82utf16($char); 
$9Wscii .=sprintf('\u%04s',bin2hex($utf16)); 
break; 
case (($ord_var_c &0xF0)==0xE0): 
$char=pack('C*',$ord_var_c, 
ord($Nar{$c +1}), 
ord($Nar{$c +2})); 
$c +=2; 
$utf16=$this->utf82utf16($char); 
$9Wscii .=sprintf('\u%04s',bin2hex($utf16)); 
break; 
case (($ord_var_c &0xF8)==0xF0): 
$char=pack('C*',$ord_var_c, 
ord($Nar{$c +1}), 
ord($Nar{$c +2}), 
ord($Nar{$c +3})); 
$c +=3; 
$utf16=$this->utf82utf16($char); 
$9Wscii .=sprintf('\u%04s',bin2hex($utf16)); 
break; 
case (($ord_var_c &0xFC)==0xF8): 
$char=pack('C*',$ord_var_c, 
ord($Nar{$c +1}), 
ord($Nar{$c +2}), 
ord($Nar{$c +3}), 
ord($Nar{$c +4})); 
$c +=4; 
$utf16=$this->utf82utf16($char); 
$9Wscii .=sprintf('\u%04s',bin2hex($utf16)); 
break; 
case (($ord_var_c &0xFE)==0xFC): 
$char=pack('C*',$ord_var_c, 
ord($Nar{$c +1}), 
ord($Nar{$c +2}), 
ord($Nar{$c +3}), 
ord($Nar{$c +4}), 
ord($Nar{$c +5})); 
$c +=5; 
$utf16=$this->utf82utf16($char); 
$9Wscii .=sprintf('\u%04s',bin2hex($utf16)); 
break; 
}}return '"'.$9Wscii.'"'; 
case 'array': 
if (is_array($Nar) &&count($Nar) &&(array_keys($Nar) !==range(0,sizeof($Nar) -1))) { 
$properties=array_map(array($this,'name_value'), 
array_keys($Nar), 
array_values($Nar)); 
foreach($properties as $property) { 
if(Services_JSON::isError($property)) { 
return $property; 
}}return '{'.join(',',$properties) .'}'; 
}$elements=array_map(array($this,'encode'),$Nar); 
foreach($elements as $element) { 
if(Services_JSON::isError($element)) { 
return $element; 
}}return '['.join(',',$elements) .']'; 
case 'object': 
$Nars=get_object_vars($Nar); 
$properties=array_map(array($this,'name_value'), 
array_keys($Nars), 
array_values($Nars)); 
foreach($properties as $property) { 
if(Services_JSON::isError($property)) { 
return $property; 
}}return '{'.join(',',$properties) .'}'; 
default: 
return ($this->use &SERVICES_JSON_SUPPRESS_ERRORS) 
?'null' 
: new Services_JSON_Error(gettype($Nar)." can not be encoded as JSON string"); 
}}function name_value($_POSTC4caseame,$MQue){ 
$d_value=$this->encode($MQue); 
if(Services_JSON::isError($d_value)) { 
return $d_value; 
}return $this->encode(strval($_POSTC4caseame)) .':'.$d_value; 
}function reduce_string($else){ 
$else=preg_replace(array( 
'#^\s*//(.+)$#m', 
'#^\s*/\*(.+)\*/#Us', 
'#/\*(.+)\*/\s*$#Us'),'',$else); 
return trim($else); 
}function decode($else){ 
$else=$this->reduce_string($else); 
switch (strtolower($else)) { 
case 'true': 
return true; 
case 'false': 
return false; 
case 'null': 
return null; 
default: 
$m=array(); 
if (is_numeric($else)) { 
return ((float)$else==(integer)$else) 
?(integer)$else 
: (float)$else; 
}elseif (preg_match('/^("|\').*(\1)$/s',$else,$m) &&$m[1]==$m[2]) { 
$delim=substr($else,0,1); 
$chrs=substr($else,1,-1); 
$utf8=''; 
$elselen_chrs=strlen($chrs); 
for ($c=0;$c <$elselen_chrs;++$c) { 
$substr_chrs_c_2=substr($chrs,$c,2); 
$ord_chrs_c=ord($chrs{$c}); 
switch (true) { 
case $substr_chrs_c_2=='\b': 
$utf8 .=chr(0x08); 
++$c; 
break; 
case $substr_chrs_c_2=='\t': 
$utf8 .=chr(0x09); 
++$c; 
break; 
case $substr_chrs_c_2=='\n': 
$utf8 .=chr(0x0A); 
++$c; 
break; 
case $substr_chrs_c_2=='\f': 
$utf8 .=chr(0x0C); 
++$c; 
break; 
case $substr_chrs_c_2=='\r': 
$utf8 .=chr(0x0D); 
++$c; 
break; 
case $substr_chrs_c_2=='\\"': 
case $substr_chrs_c_2=='\\\'': 
case $substr_chrs_c_2=='\\\\': 
case $substr_chrs_c_2=='\\/': 
if (($delim=='"'&&$substr_chrs_c_2 !='\\\'') || 
($delim=="'"&&$substr_chrs_c_2 !='\\"')) { 
$utf8 .=$chrs{++$c}; 
}break; 
case preg_match('/\\\u[0-9A-F]{4}/i',substr($chrs,$c,6)): 
$utf16=chr(hexdec(substr($chrs,($c +2),2))) 
.chr(hexdec(substr($chrs,($c +4),2))); 
$utf8 .=$this->utf162utf8($utf16); 
$c +=5; 
break; 
case ($ord_chrs_c >=0x20) &&($ord_chrs_c <=0x7F): 
$utf8 .=$chrs{$c}; 
break; 
case ($ord_chrs_c &0xE0)==0xC0: 
$utf8 .=substr($chrs,$c,2); 
++$c; 
break; 
case ($ord_chrs_c &0xF0)==0xE0: 
$utf8 .=substr($chrs,$c,3); 
$c +=2; 
break; 
case ($ord_chrs_c &0xF8)==0xF0: 
$utf8 .=substr($chrs,$c,4); 
$c +=3; 
break; 
case ($ord_chrs_c &0xFC)==0xF8: 
$utf8 .=substr($chrs,$c,5); 
$c +=4; 
break; 
case ($ord_chrs_c &0xFE)==0xFC: 
$utf8 .=substr($chrs,$c,6); 
$c +=5; 
break; 
}}return $utf8; 
}elseif (preg_match('/^\[.*\]$/s',$else) ||preg_match('/^\{.*\}$/s',$else)) { 
if ($else{0}=='[') { 
$stk=array(SERVICES_JSON_IN_ARR); 
$_GETXNreturn=array(); 
}else { 
if ($this->use &SERVICES_JSON_LOOSE_TYPE) { 
$stk=array(SERVICES_JSON_IN_OBJ); 
$obj=array(); 
}else { 
$stk=array(SERVICES_JSON_IN_OBJ); 
$obj=new stdClass(); 
}}array_push($stk,array('what'=>SERVICES_JSON_SLICE, 
'where'=>0, 
'delim'=>false)); 
$chrs=substr($else,1,-1); 
$chrs=$this->reduce_string($chrs); 
if ($chrs=='') { 
if (reset($stk)==SERVICES_JSON_IN_ARR) { 
return $_GETXNreturn; 
}else { 
return $obj; 
}}$elselen_chrs=strlen($chrs); 
for ($c=0;$c <=$elselen_chrs;++$c) { 
$B384while1p=end($stk); 
$substr_chrs_c_2=substr($chrs,$c,2); 
if (($c==$elselen_chrs) ||(($chrs{$c}==',') &&($B384while1p['what']==SERVICES_JSON_SLICE))) { 
$slice=substr($chrs,$B384while1p['where'],($c -$B384while1p['where'])); 
array_push($stk,array('what'=>SERVICES_JSON_SLICE,'where'=>($c +1),'delim'=>false)); 
if (reset($stk)==SERVICES_JSON_IN_ARR) { 
array_push($_GETXNreturn,$this->decode($slice)); 
}elseif (reset($stk)==SERVICES_JSON_IN_OBJ) { 
$parts=array(); 
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis',$slice,$parts)) { 
$ey=$this->decode($parts[1]); 
$MQ=$this->decode($parts[2]); 
if ($this->use &SERVICES_JSON_LOOSE_TYPE) { 
$obj[$ey]=$MQ; 
}else { 
$obj->$ey=$MQ; 
}}elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis',$slice,$parts)) { 
$ey=$parts[1]; 
$MQ=$this->decode($parts[2]); 
if ($this->use &SERVICES_JSON_LOOSE_TYPE) { 
$obj[$ey]=$MQ; 
}else { 
$obj->$ey=$MQ; 
}}}}elseif ((($chrs{$c}=='"') ||($chrs{$c}=="'")) &&($B384while1p['what'] !=SERVICES_JSON_IN_STR)) { 
array_push($stk,array('what'=>SERVICES_JSON_IN_STR,'where'=>$c,'delim'=>$chrs{$c})); 
}elseif (($chrs{$c}==$B384while1p['delim']) && 
($B384while1p['what']==SERVICES_JSON_IN_STR) && 
((strlen(substr($chrs,0,$c)) -strlen(rtrim(substr($chrs,0,$c),'\\'))) %2 !=1)) { 
array_pop($stk); 
}elseif (($chrs{$c}=='[') && 
in_array($B384while1p['what'],array(SERVICES_JSON_SLICE,SERVICES_JSON_IN_ARR,SERVICES_JSON_IN_OBJ))) { 
array_push($stk,array('what'=>SERVICES_JSON_IN_ARR,'where'=>$c,'delim'=>false)); 
}elseif (($chrs{$c}==']') &&($B384while1p['what']==SERVICES_JSON_IN_ARR)) { 
array_pop($stk); 
}elseif (($chrs{$c}=='{') && 
in_array($B384while1p['what'],array(SERVICES_JSON_SLICE,SERVICES_JSON_IN_ARR,SERVICES_JSON_IN_OBJ))) { 
array_push($stk,array('what'=>SERVICES_JSON_IN_OBJ,'where'=>$c,'delim'=>false)); 
}elseif (($chrs{$c}=='}') &&($B384while1p['what']==SERVICES_JSON_IN_OBJ)) { 
array_pop($stk); 
}elseif (($substr_chrs_c_2=='') &&($B384while1p['what']==SERVICES_JSON_IN_CMT)) { 
array_pop($stk); 
$c++; 
for ($=$B384while1p['where'];$ <=$c;++$) 
$chrs=substr_replace($chrs,' ',$,1); 
}}if (reset($stk)==SERVICES_JSON_IN_ARR) { 
return $_GETXNreturn; 
}elseif (reset($stk)==SERVICES_JSON_IN_OBJ) { 
return $obj; 
}}}}function isError($,$code=null){ 
if (class_exists('pear')) { 
return PEAR::isError($,$code); 
}elseif (is_object($) &&(get_class($)=='services_json_error'|| 
is_subclass_of($,'services_json_error'))) { 
return true; 
}return false; 
}}if (class_exists('PEAR_Error')) { 
class Services_JSON_Error extends PEAR_Error{ 
function Services_JSON_Error($BM='unknown error',$code=null, 
$mode=null,$options=null,$info=null){ 
parent::PEAR_Error($BM,$code,$mode,$options,$info); 
}}}else { 
class Services_JSON_Error{ 
function Services_JSON_Error($BM='unknown error',$code=null, 
$mode=null,$options=null,$info=null){ 
}}};echo ' 
';?> 

Did this file decode correctly?

Original Code

<?php
define('SERVICES_JSON_SLICE',1);
define('SERVICES_JSON_IN_STR',2);
define('SERVICES_JSON_IN_ARR',3);
define('SERVICES_JSON_IN_OBJ',4);
define('SERVICES_JSON_IN_CMT',5);
define('SERVICES_JSON_LOOSE_TYPE',16);
define('SERVICES_JSON_SUPPRESS_ERRORS',32);
class Services_JSON{
function Services_JSON($use=0){
$this->use=$use;
}function utf162utf8($utf16){
if(function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf16,'UTF-8','UTF-16');
}$bytes=(ord($utf16{0}) <<8) |ord($utf16{1});
switch(true) {
case ((0x7F &$bytes)==$bytes):
return chr(0x7F &$bytes);
case (0x07FF &$bytes)==$bytes:
return chr(0xC0 |(($bytes >>6) &0x1F))
.chr(0x80 |($bytes &0x3F));
case (0xFFFF &$bytes)==$bytes:
return chr(0xE0 |(($bytes >>12) &0x0F))
.chr(0x80 |(($bytes >>6) &0x3F))
.chr(0x80 |($bytes &0x3F));
}return '';
}function utf82utf16($utf8){
if(function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf8,'UTF-16','UTF-8');
}switch(strlen($utf8)) {
case 1:
return $utf8;
case 2:
return chr(0x07 &(ord($utf8{0}) >>2))
.chr((0xC0 &(ord($utf8{0}) <<6))
|(0x3F &ord($utf8{1})));
case 3:
return chr((0xF0 &(ord($utf8{0}) <<4))
|(0x0F &(ord($utf8{1}) >>2)))
.chr((0xC0 &(ord($utf8{1}) <<6))
|(0x7F &ord($utf8{2})));
}return '';
}function encode($Nar){
switch (gettype($Nar)) {
case 'boolean':
return $Nar ?'true': 'false';
case 'NULL':
return 'null';
case 'integer':
return (int) $Nar;
case 'double':
case 'float':
return (float) $Nar;
case 'string':
$9Wscii='';
$elselen_var=strlen($Nar);
for ($c=0;$c <$elselen_var;++$c) {
$ord_var_c=ord($Nar{$c});
switch (true) {
case $ord_var_c==0x08:
$9Wscii .='\b';
break;
case $ord_var_c==0x09:
$9Wscii .='\t';
break;
case $ord_var_c==0x0A:
$9Wscii .='\n';
break;
case $ord_var_c==0x0C:
$9Wscii .='\f';
break;
case $ord_var_c==0x0D:
$9Wscii .='\r';
break;
case $ord_var_c==0x22:
case $ord_var_c==0x2F:
case $ord_var_c==0x5C:
$9Wscii .='\\'.$Nar{$c};
break;
case (($ord_var_c >=0x20) &&($ord_var_c <=0x7F)):
$9Wscii .=$Nar{$c};
break;
case (($ord_var_c &0xE0)==0xC0):
$char=pack('C*',$ord_var_c,ord($Nar{$c +1}));
$c +=1;
$utf16=$this->utf82utf16($char);
$9Wscii .=sprintf('\u%04s',bin2hex($utf16));
break;
case (($ord_var_c &0xF0)==0xE0):
$char=pack('C*',$ord_var_c,
ord($Nar{$c +1}),
ord($Nar{$c +2}));
$c +=2;
$utf16=$this->utf82utf16($char);
$9Wscii .=sprintf('\u%04s',bin2hex($utf16));
break;
case (($ord_var_c &0xF8)==0xF0):
$char=pack('C*',$ord_var_c,
ord($Nar{$c +1}),
ord($Nar{$c +2}),
ord($Nar{$c +3}));
$c +=3;
$utf16=$this->utf82utf16($char);
$9Wscii .=sprintf('\u%04s',bin2hex($utf16));
break;
case (($ord_var_c &0xFC)==0xF8):
$char=pack('C*',$ord_var_c,
ord($Nar{$c +1}),
ord($Nar{$c +2}),
ord($Nar{$c +3}),
ord($Nar{$c +4}));
$c +=4;
$utf16=$this->utf82utf16($char);
$9Wscii .=sprintf('\u%04s',bin2hex($utf16));
break;
case (($ord_var_c &0xFE)==0xFC):
$char=pack('C*',$ord_var_c,
ord($Nar{$c +1}),
ord($Nar{$c +2}),
ord($Nar{$c +3}),
ord($Nar{$c +4}),
ord($Nar{$c +5}));
$c +=5;
$utf16=$this->utf82utf16($char);
$9Wscii .=sprintf('\u%04s',bin2hex($utf16));
break;
}}return '"'.$9Wscii.'"';
case 'array':
if (is_array($Nar) &&count($Nar) &&(array_keys($Nar) !==range(0,sizeof($Nar) -1))) {
$properties=array_map(array($this,'name_value'),
array_keys($Nar),
array_values($Nar));
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
return $property;
}}return '{'.join(',',$properties) .'}';
}$elements=array_map(array($this,'encode'),$Nar);
foreach($elements as $element) {
if(Services_JSON::isError($element)) {
return $element;
}}return '['.join(',',$elements) .']';
case 'object':
$Nars=get_object_vars($Nar);
$properties=array_map(array($this,'name_value'),
array_keys($Nars),
array_values($Nars));
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
return $property;
}}return '{'.join(',',$properties) .'}';
default:
return ($this->use &SERVICES_JSON_SUPPRESS_ERRORS)
?'null'
: new Services_JSON_Error(gettype($Nar)." can not be encoded as JSON string");
}}function name_value($_POSTC4caseame,$MQue){
$d_value=$this->encode($MQue);
if(Services_JSON::isError($d_value)) {
return $d_value;
}return $this->encode(strval($_POSTC4caseame)) .':'.$d_value;
}function reduce_string($else){
$else=preg_replace(array(
'#^\s*//(.+)$#m',
'#^\s*/\*(.+)\*/#Us',
'#/\*(.+)\*/\s*$#Us'),'',$else);
return trim($else);
}function decode($else){
$else=$this->reduce_string($else);
switch (strtolower($else)) {
case 'true':
return true;
case 'false':
return false;
case 'null':
return null;
default:
$m=array();
if (is_numeric($else)) {
return ((float)$else==(integer)$else)
?(integer)$else
: (float)$else;
}elseif (preg_match('/^("|\').*(\1)$/s',$else,$m) &&$m[1]==$m[2]) {
$delim=substr($else,0,1);
$chrs=substr($else,1,-1);
$utf8='';
$elselen_chrs=strlen($chrs);
for ($c=0;$c <$elselen_chrs;++$c) {
$substr_chrs_c_2=substr($chrs,$c,2);
$ord_chrs_c=ord($chrs{$c});
switch (true) {
case $substr_chrs_c_2=='\b':
$utf8 .=chr(0x08);
++$c;
break;
case $substr_chrs_c_2=='\t':
$utf8 .=chr(0x09);
++$c;
break;
case $substr_chrs_c_2=='\n':
$utf8 .=chr(0x0A);
++$c;
break;
case $substr_chrs_c_2=='\f':
$utf8 .=chr(0x0C);
++$c;
break;
case $substr_chrs_c_2=='\r':
$utf8 .=chr(0x0D);
++$c;
break;
case $substr_chrs_c_2=='\\"':
case $substr_chrs_c_2=='\\\'':
case $substr_chrs_c_2=='\\\\':
case $substr_chrs_c_2=='\\/':
if (($delim=='"'&&$substr_chrs_c_2 !='\\\'') ||
($delim=="'"&&$substr_chrs_c_2 !='\\"')) {
$utf8 .=$chrs{++$c};
}break;
case preg_match('/\\\u[0-9A-F]{4}/i',substr($chrs,$c,6)):
$utf16=chr(hexdec(substr($chrs,($c +2),2)))
.chr(hexdec(substr($chrs,($c +4),2)));
$utf8 .=$this->utf162utf8($utf16);
$c +=5;
break;
case ($ord_chrs_c >=0x20) &&($ord_chrs_c <=0x7F):
$utf8 .=$chrs{$c};
break;
case ($ord_chrs_c &0xE0)==0xC0:
$utf8 .=substr($chrs,$c,2);
++$c;
break;
case ($ord_chrs_c &0xF0)==0xE0:
$utf8 .=substr($chrs,$c,3);
$c +=2;
break;
case ($ord_chrs_c &0xF8)==0xF0:
$utf8 .=substr($chrs,$c,4);
$c +=3;
break;
case ($ord_chrs_c &0xFC)==0xF8:
$utf8 .=substr($chrs,$c,5);
$c +=4;
break;
case ($ord_chrs_c &0xFE)==0xFC:
$utf8 .=substr($chrs,$c,6);
$c +=5;
break;
}}return $utf8;
}elseif (preg_match('/^\[.*\]$/s',$else) ||preg_match('/^\{.*\}$/s',$else)) {
if ($else{0}=='[') {
$stk=array(SERVICES_JSON_IN_ARR);
$_GETXNreturn=array();
}else {
if ($this->use &SERVICES_JSON_LOOSE_TYPE) {
$stk=array(SERVICES_JSON_IN_OBJ);
$obj=array();
}else {
$stk=array(SERVICES_JSON_IN_OBJ);
$obj=new stdClass();
}}array_push($stk,array('what'=>SERVICES_JSON_SLICE,
'where'=>0,
'delim'=>false));
$chrs=substr($else,1,-1);
$chrs=$this->reduce_string($chrs);
if ($chrs=='') {
if (reset($stk)==SERVICES_JSON_IN_ARR) {
return $_GETXNreturn;
}else {
return $obj;
}}$elselen_chrs=strlen($chrs);
for ($c=0;$c <=$elselen_chrs;++$c) {
$B384while1p=end($stk);
$substr_chrs_c_2=substr($chrs,$c,2);
if (($c==$elselen_chrs) ||(($chrs{$c}==',') &&($B384while1p['what']==SERVICES_JSON_SLICE))) {
$slice=substr($chrs,$B384while1p['where'],($c -$B384while1p['where']));
array_push($stk,array('what'=>SERVICES_JSON_SLICE,'where'=>($c +1),'delim'=>false));
if (reset($stk)==SERVICES_JSON_IN_ARR) {
array_push($_GETXNreturn,$this->decode($slice));
}elseif (reset($stk)==SERVICES_JSON_IN_OBJ) {
$parts=array();
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis',$slice,$parts)) {
$ey=$this->decode($parts[1]);
$MQ=$this->decode($parts[2]);
if ($this->use &SERVICES_JSON_LOOSE_TYPE) {
$obj[$ey]=$MQ;
}else {
$obj->$ey=$MQ;
}}elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis',$slice,$parts)) {
$ey=$parts[1];
$MQ=$this->decode($parts[2]);
if ($this->use &SERVICES_JSON_LOOSE_TYPE) {
$obj[$ey]=$MQ;
}else {
$obj->$ey=$MQ;
}}}}elseif ((($chrs{$c}=='"') ||($chrs{$c}=="'")) &&($B384while1p['what'] !=SERVICES_JSON_IN_STR)) {
array_push($stk,array('what'=>SERVICES_JSON_IN_STR,'where'=>$c,'delim'=>$chrs{$c}));
}elseif (($chrs{$c}==$B384while1p['delim']) &&
($B384while1p['what']==SERVICES_JSON_IN_STR) &&
((strlen(substr($chrs,0,$c)) -strlen(rtrim(substr($chrs,0,$c),'\\'))) %2 !=1)) {
array_pop($stk);
}elseif (($chrs{$c}=='[') &&
in_array($B384while1p['what'],array(SERVICES_JSON_SLICE,SERVICES_JSON_IN_ARR,SERVICES_JSON_IN_OBJ))) {
array_push($stk,array('what'=>SERVICES_JSON_IN_ARR,'where'=>$c,'delim'=>false));
}elseif (($chrs{$c}==']') &&($B384while1p['what']==SERVICES_JSON_IN_ARR)) {
array_pop($stk);
}elseif (($chrs{$c}=='{') &&
in_array($B384while1p['what'],array(SERVICES_JSON_SLICE,SERVICES_JSON_IN_ARR,SERVICES_JSON_IN_OBJ))) {
array_push($stk,array('what'=>SERVICES_JSON_IN_OBJ,'where'=>$c,'delim'=>false));
}elseif (($chrs{$c}=='}') &&($B384while1p['what']==SERVICES_JSON_IN_OBJ)) {
array_pop($stk);
}elseif (($substr_chrs_c_2=='') &&($B384while1p['what']==SERVICES_JSON_IN_CMT)) {
array_pop($stk);
$c++;
for ($=$B384while1p['where'];$ <=$c;++$)
$chrs=substr_replace($chrs,' ',$,1);
}}if (reset($stk)==SERVICES_JSON_IN_ARR) {
return $_GETXNreturn;
}elseif (reset($stk)==SERVICES_JSON_IN_OBJ) {
return $obj;
}}}}function isError($,$code=null){
if (class_exists('pear')) {
return PEAR::isError($,$code);
}elseif (is_object($) &&(get_class($)=='services_json_error'||
is_subclass_of($,'services_json_error'))) {
return true;
}return false;
}}if (class_exists('PEAR_Error')) {
class Services_JSON_Error extends PEAR_Error{
function Services_JSON_Error($BM='unknown error',$code=null,
$mode=null,$options=null,$info=null){
parent::PEAR_Error($BM,$code,$mode,$options,$info);
}}}else {
class Services_JSON_Error{
function Services_JSON_Error($BM='unknown error',$code=null,
$mode=null,$options=null,$info=null){
}}};echo '
';?>

Function Calls

None

Variables

None

Stats

MD5 a1b427d613b067988aed1efbd5d106c9
Eval Count 0
Decode Time 93 ms