Files
core/f_func/class._JSON.php
T
Hide_D 373bcde70b e_lib 코드들을 composer로 이동
func_http 삭제. guzzle로 대체

php 파일에서 include, require 앞에 있는 구문들을 전부 뒤로 이동.
2018-01-28 21:38:04 +09:00

57 lines
1.6 KiB
PHP

<?php
require(__dir__.'/../vendor/autoload.php');
class _JSON {
public static function Encode($arr) {
foreach($arr as $key => $val) {
$key = _JSON::AddSlashes($key);
if(is_array($val) == true) {
$val = json_encode($val);
} else {
$val = _JSON::AddSlashes($val);
}
$item[] = "\"{$key}\":\"{$val}\"";
}
$encoded = '{' . implode(',', $item) . '}';
return $encoded;
}
public static function Decode($encoded) {
$decoded = substr($encoded, 2, strlen($encoded)-4);
$len = strlen($decoded);
$s = 0; $e = 0;
while($s < $len) {
$e = strpos($decoded, '":"', $s);
$key = substr($decoded, $s, $e-$s);
$s = $e + 3;
$e = strpos($decoded, '","', $s);
if($e == false) $e = $len;
$val = substr($decoded, $s, $e-$s);
if(substr($val, 0, 2) != '{"') {
$s = $e + 3;
} else {
$e = strpos($decoded, '"}"', $s) + 2;
$val = substr($decoded, $s, $e-$s);
$s = $e + 3;
$val = json_decode($val);
}
$result[$key] = $val;
}
return $result;
}
public static function AddSlashes($str) {
$str = str_replace("\\", "\\\\", $str);
$str = str_replace("\"", "\\\"", $str);
$str = str_replace("'", "\\'", $str);
$str = str_replace("\r\n", "\\n", $str);
$str = str_replace("\n", "\\n", $str);
return $str;
}
}