request = $request; $this->response = $response; } public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $uri = $request->getUri(); $path = $uri->getPath(); if (!$path || !in_array($path, self::STREAM_URL)) { return $handler->handle($request); } try { $badWords = $this->redis->sMembers('black_word'); // $whiteWords = $this->redis->sMembers('white_word'); $params = $this->request->all(); $concatenated = ""; if ($params) { foreach ($params as $value) { if (is_array($value)) { $concatenated .= json_encode($value); } else { $concatenated .= (string)$value; } } } foreach ($badWords as $badWord) { // if (in_array($badWord, $whiteWords)) { // continue; // } if (str_contains($concatenated, $badWord)) { return $this->response->raw(json_encode([ 'code' => 0, 'data' => [], 'message' => '发现违禁词: ' . $badWord ])); } } return $handler->handle($request); } catch (\Exception $e) { return $this->response->raw(json_encode([ 'code' => -1, 'data' => [], 'message' => '系统错误:' . $e->getMessage() ])); } } }