* update:2022/03 * */ header('Content-Type:application/json; charset=utf-8'); //载入扩展配置文件 require('ext.php'); //默认域名,请改成你自己的域名,末尾不要带有/ define("DOMAIN","https://xw.al"); //每日单IP限制,就是每个IP每天可以生成多少个短链接,默认50个 define("LIMIT",50); //过期时间设置 $today = strtotime(date("Y-m-d 23:59:59"),time()); $exp_time = $today - time(); //改成你自己的secret signature token,登录YOURLS后台 - 工具 - 安全的API调用 - 获取secret signature token define("TOKEN",''); //获取url $url = @$_POST['url']; //echo $url; //exit; //try{ // $url = urldecode($url); //} //catch(Exception $e){ // err_msg($e->getMessage()); //} //如果URL不合法,直接停止 if( ! filter_var($url, FILTER_VALIDATE_URL) ) { err_msg('URL不合法!'); } //获取用户IP $ip = getIP(); //设置key $key = 'ip_'.str_replace('.','_',$ip); //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //判断key是否存在 if( ! $redis->get($key) ) { $redis->set($key, '0'); $redis->EXPIRE($key, $exp_time); } //如果key存在 if ( ($redis->get($key)) || ( $redis->get($key) === '0' ) ) { //获取value $value = intval($redis->get($key)); //如果value小于limit,则调用API if( $value < LIMIT ) { $api_url = DOMAIN.'/yourls-api.php?signature='.TOKEN.'&action=shorturl&format=json&url='.$url; $re = curl($api_url); $value = (string)($value + 1); $redis->set($key, $value); $redis->EXPIRE($key, $exp_time); // exit($re); } else{ err_msg('今日请求上限!'); } } //var_dump($redis->get($key)); //echo $key; //echo $redis->get($key);