/usr/share/php/arc/serializers/ARC2_LegacyJSONSerializer.php is in libarc-php 2.2.5-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <?php
/*
homepage: http://arc.semsol.org/
license: http://arc.semsol.org/license
class: ARC2 Legacy JSON Serializer
author: Benjamin Nowack
version: 2010-11-16
*/
ARC2::inc('Class');
class ARC2_LegacyJSONSerializer extends ARC2_Class {
function __construct($a, &$caller) {
parent::__construct($a, $caller);
}
function __init() {
parent::__init();
$this->content_header = 'application/json';
}
/* */
function getSerializedArray($struct, $ind = '') {
$n = "\n";
if (function_exists('json_encode')) return str_replace('","', '",' . $n . '"', str_replace("\/","/",json_encode($struct)));
$r = '';
$from = array("\\", "\r", "\t", "\n", '"', "\b", "\f");
$to = array('\\\\', '\r', '\t', '\n', '\"', '\b', '\f');
$is_flat = $this->isAssociativeArray($struct) ? 0 : 1;
foreach ($struct as $k => $v) {
$r .= $r ? ',' . $n . $ind . $ind : $ind . $ind;
$r .= $is_flat ? '' : '"' . $k . '": ';
$r .= is_array($v) ? $this->getSerializedArray($v, $ind . ' ') : '"' . str_replace($from, $to, $v) . '"';
}
return $is_flat ? $ind . '[' . $n . $r . $n . $ind . ']' : $ind . '{' . $n . $r . $n . $ind . '}';
}
/* */
function isAssociativeArray($v) {
foreach (array_keys($v) as $k => $val) {
if ($k !== $val) return 1;
}
return 0;
}
/* */
}
|