PHP接口访问频率限制的示例

  介绍

这篇文章主要介绍PHP接口访问频率限制的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

发现网上很多限制都只是1分钟(或者某个时间)内访问的限制。

比如1分钟限制10次那我在59秒的访问了10次,然后关键又过期了,接下1分来钟又可以访问了。这种限制根本就不合理。

所以有了我的想法。

直接上代码吧。

/* *   ,* @param  uid美元   ,* @return  bool | int   ,*检测用户接口访问频率   ,*/function  api_frequency_visits  (uid)美元,{   ,,,key 美元;=,“用户:{$ uid}: api: frequency";   ,,,redis 美元;=,new 复述();   ,,,复述,美元→连接(& # 39;127.0.0.1 # 39;);   ,,,data 美元;=,复述,→美元hGetAll(关键);   ,,,//需要删除的关键   ,,,del_key 美元;=,[];   ,,,//时间内访问的总次数   ,,,total 美元;=,0;   ,,,//时间内最大访问次数   ,,,max_frequency 美元;=,10;   ,,,//当前时间   ,,,now_time 美元;=,();   ,,,//限制时间   ,,,limit_time 美元;=,60;   ,,,foreach  (data 美元;as 时间=美元在美元数),{   ,,,,,,,if  (time 美元;& lt;, now_time 美元;作用;limit_time美元),{   ,,,,,,,,,,,美元del_key[],=,美元的时间;   ,,,,,,,},{else    ,,,,,,,,,,,total 美元;+=,美元计数;   ,,,,,,,}   ,,,}   ,,,//存在需要删除的关键   ,,,if  (del_key美元),{   ,,,,,,,复述,→美元hDel(美元关键,,…del_key美元);   ,,,}   ,,,if  (total 美元;祝辞=,max_frequency美元),{   ,,,,,,,return 假;   ,,,}   ,,,return 复述→美元hIncrBy(键,美元,now_time美元,1);   }   $ uid =, 1;   $ result =, api_frequency_visits (uid);   if (! $结果),{   ,,,echo , json_encode((& # 39;代码# 39;=祝辞0,,& # 39;味精# 39;=祝辞& # 39;操作过于频繁& # 39;,,& # 39;数据# 39;=祝辞[]]);死亡;   }   echo , json_encode([& # 39;代码# 39;=祝辞;1,& # 39;味精# 39;=祝辞& # 39;& # 39;,,& # 39;数据# 39;=祝辞(   ,,,& # 39;uid # 39;=祝辞uid美元,   ,,,& # 39;其他# 39;=祝辞rand ()   ]]);死亡;

限制时间,限制次数这些都可以修改,包括根据用户身份证也可以换成自己想要的限制,比如IP等。

键过期时间也是可以添加的。

以上是“PHP接口访问频率限制的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

PHP接口访问频率限制的示例