function data_object($db_name, $table_name, $base_name, $data = null, $encode = true) { $filename = jsondb_file($db_name, $table_name, $base_name); //写入操作 if ($data) { if ($encode) { $data = json_encode($data); } file_put_contents($filename, $data); return $data; } else { //读出操作 if (!file_exists($filename)) { return []; } $data_str = file_get_contents($filename); if ($data_str === null) { return []; } $res = json_decode($data_str, true); if (empty($res)) { return []; } return $res; } }
function save_keyword($kword_type, $device, $summary, $detail_item) { global $CONFIGS, $DEVSAV; $db_name = 'grep-datas'; $table_name = null; switch ($kword_type) { case 'kword_title': $table_name = 'historys'; break; case 'kword_interest': $table_name = 'interests'; break; case 'kword_cart': $table_name = 'carts'; break; case 'kword_favorite': $table_name = 'favorites'; break; case 'kword_submit': $table_name = 'searchs'; break; case 'kword_account': $table_name = 'accounts'; break; default: return false; } if (!array_key_exists('ID', $DEVSAV)) { $ori_data = new_data($db_name, $table_name, $device); $DEVSAV['ID'] = $ori_data['general']['ID']; } else { $ID = $DEVSAV['ID']; $ori_data = data_object($db_name, $table_name, $ID . '.json'); if (empty($ori_data)) { $ori_data = new_data($db_name, $table_name, $device, $ID); } $ori_data['general']['TIME'] = jsondb_date(); } $ori_data['data']['summary'] = $summary; $detail_url = $ori_data['data']['details']; $detail_file = jsondb_file($db_name, $table_name, basename($detail_url)); file_put_contents($detail_file, json_encode($detail_item) . "\r\n", FILE_APPEND | LOCK_EX); jsondb_data($db_name, $table_name, $device, $ori_data); }