'i', 'netstat_recv' => 'i', 'memory_free' => 'f', 'memory_total' => 'f', 'memory_used' => 'f', 'disk_free' => 'B', 'disk_percent' => 'f', 'disk_used' => 'B', 'disk_total' => 'B', 'processes' => 'i', 'temp' => 'i', 'username' =>'s', 'computer' => 's']; private $_values = []; public function __construct() { } function conv_bytes($v) { $units = explode(' ', ' K M G T P E Z Y'); preg_match('/([0-9]+)([GKMTgkmT])?B/',$v,$vu); $v1 = $vu[1]; if (count($vu) == 3) $v2 = $vu[2]; else $v2 = ''; $pos = array_search($v2,$units); $num = floatval($v1) * pow(1024,$pos); return $num; } public function parse($vals) { foreach ($vals as $k => $v) { if (is_array($v)) { foreach ($v as $k2 => $v2) { $this->_values["$k"."_"."$k2"] = $v2; } } else { $this->_values[$k] = $v; } } foreach ($this->_items as $k => $t) { $val = $this->_values[$k]; if ($t == 's') continue; if ($t == 'B') $val = intval($this->conv_bytes($val)); if ($t == 'f') $val = floatval($val); if ($t == 'i') $val = intval($val); $this->_values[$k] = $val; } } public function log(Request $request) { $data = json_decode($request->getContent(), true); $v = $data["values"]; $i = $data["items"]; $this->parse($v); var_export($this->_values); return "OK"; //DB::insert('insert into values (user,computer,recv,send) values (?, ?, ?, ?)', [$u, $c, $r, $s]); } }