<?php
checkRepeatReq(['a' => 1, 'b' => 2, 'c' => 3]);
function checkRepeatReq(array $reqParams, string $prefix = '')
{
$url_path = Request::getPathInfo();
if (!$url_path || $url_path == 'favicon.ico') {
$url_path = '/';
}
$host = Request::domain();
if (is_array($reqParams)) {
$reqParams = http_build_query($reqParams);
}
$key = md5($host . $url_path . $reqParams);
if ($prefix) {
return $prefix . ':' . $key;
}
// 是否为重复请求
if (duplicateReq($key)) {
var_dump('重复请求');
die();
} else {
var_dump('正常请求');
die();
}
}
function duplicateReq(string $id, int $expire = 0): bool
{
$repeat = false;
// 创建Redis实例
$redis = new Redis();
// 连接Redis服务器,这里假设Redis服务器运行在本地,默认端口是6379
$redis->connect('127.0.0.1', 6379);
// 认证(如果设置了密码)
// $redis->auth('yourpassword');
if ($expire <= 0) {
$expire = rand(100, 600);
}
$key = 'sdkrrqq:' . $id;
try {
$c = $redis->exists($key);
if (!empty($c)) {
$repeat = true;
} else {
$redis->setEx($key, $expire, '1');
}
} catch (Exception $ex) {
}
return $repeat;
}
?>
重复请求检测示例-php
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 微信域名检测接口 API是腾讯官方对外公布的域名查询接口,请求接口可实时查询域名在微信种的状态信息。如果状态异常则...
- 新浪短网址api是新浪官方对外公开的短网址生成接口,可以将冗长的链接地址缩短生成 t.cn 格式的短链接,下面分享...
- 在调用第三方api接口时,有时会遇到通过http协议上传图片,以下是一个微信公众平台新增永久素材的例子(使用前请阅...
- 后台管理系统的技术栈:vite、vue3、pinia、vue-router、naive-ui。用在系统中的请求组件...
- get 请求、post请求: 网络请求框架pod 'AFNetworking', '~> 4.0' TestAFN...