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)) { $message = '发现违禁词: '. $badWord; return $this->response->json( [ 'code' => 0, 'data' => [$message], 'message' => "该内容存在非法信息,请修改后重新发布" ] ); } } return $handler->handle($request); } catch (\Exception $e) { return $this->response->raw(json_encode([ 'code' => -1, 'data' => [], 'message' => '系统错误:' . $e->getMessage() ])); } } }