123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- function drupal_json_encode_helper($var) {
- switch (gettype($var)) {
- case 'boolean':
- return $var ? 'true' : 'false';
- case 'integer':
- case 'double':
- return $var;
- case 'resource':
- case 'string':
-
-
-
- $replace_pairs = array(
-
- '\\' => '\u005C',
- '"' => '\u0022',
- "\x00" => '\u0000',
- "\x01" => '\u0001',
- "\x02" => '\u0002',
- "\x03" => '\u0003',
- "\x04" => '\u0004',
- "\x05" => '\u0005',
- "\x06" => '\u0006',
- "\x07" => '\u0007',
- "\x08" => '\u0008',
- "\x09" => '\u0009',
- "\x0a" => '\u000A',
- "\x0b" => '\u000B',
- "\x0c" => '\u000C',
- "\x0d" => '\u000D',
- "\x0e" => '\u000E',
- "\x0f" => '\u000F',
- "\x10" => '\u0010',
- "\x11" => '\u0011',
- "\x12" => '\u0012',
- "\x13" => '\u0013',
- "\x14" => '\u0014',
- "\x15" => '\u0015',
- "\x16" => '\u0016',
- "\x17" => '\u0017',
- "\x18" => '\u0018',
- "\x19" => '\u0019',
- "\x1a" => '\u001A',
- "\x1b" => '\u001B',
- "\x1c" => '\u001C',
- "\x1d" => '\u001D',
- "\x1e" => '\u001E',
- "\x1f" => '\u001F',
-
- "'" => '\u0027',
- '<' => '\u003C',
- '>' => '\u003E',
- '&' => '\u0026',
-
-
- '/' => '\u002F',
-
-
- "\xe2\x80\xa8" => '\u2028',
- "\xe2\x80\xa9" => '\u2029',
- );
- return '"' . strtr($var, $replace_pairs) . '"';
- case 'array':
-
-
-
- if (empty($var) || array_keys($var) === range(0, sizeof($var) - 1)) {
- $output = array();
- foreach ($var as $v) {
- $output[] = drupal_json_encode_helper($v);
- }
- return '[ ' . implode(', ', $output) . ' ]';
- }
-
- case 'object':
- $output = array();
- foreach ($var as $k => $v) {
- $output[] = drupal_json_encode_helper(strval($k)) . ':' . drupal_json_encode_helper($v);
- }
- return '{' . implode(', ', $output) . '}';
- default:
- return 'null';
- }
- }
|