php基于文件存取实现单位时间内执行次数限制的限流代码

代码语言:phpcli

所属分类:其他

代码描述:php基于文件存取实现单位时间内执行次数限制的限流代码

代码标签: php 基于 文件 存取 单位 时间 执行 次数 限制 限流 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php

class FileRateLimiter {
    private $maxRequests;
    private $timeWindow;
    private $filePath;

    public function __construct($maxRequests, $timeWindow, $filePath) {
        $this->maxRequests = $maxRequests;
        $this->timeWindow = $timeWindow;
        $this->filePath = $filePath;
    }

    public function isAllowed($userId) {
        $currentTime = time();
        $data = $this->readData();

        // 清除过期的请求记录
        if (isset($data[$userId])) {
            $data[$userId] = array_filter($data[$userId], function($timestamp) use ($currentTime) {
                return $timestamp > ($currentTime - $this->timeWindow);
            });
        } else {
            $data[$userId] = [];
        }

        // 检查当前时间窗口内的请求数量
        if (count($data[$userId]) < $this->maxRequests) {
            // 记录当前请求
            $data[$userId][] = $currentTime;.........完整代码请登录后点击上方下载按钮下载查看

网友评论0