标签 php 下的文章

生成桌面快捷方式程序如下

  header("Content-type: text/html; charset=gbk");
  $title = !empty($_GET['title'])?$_GET['title']:'';//获取传值
  $url = !empty($_GET['url'])?$_GET['url']:'';//获取传值

  $title = test_input($title);
  $url = test_input($url);

  $Shortcut = "[InternetShortcut]
  URL=".$url."
  IDList=
  [{000214A0-0000-0000-C000-000000000046}]
  Prop3=19,2
  ";
  header("Content-type: application/octet-stream");
  header("Content-Disposition: attachment; filename=".$title.".url;");
  echo $Shortcut;

备注:页面编码必须为gbk或gb2312

今天接到一个需求,需要获取一个根据用户的总成绩及地区进行一个排名,参与人数约为20万,原计划直接查库操作,后来考虑到需要将所有数据查出再做排名处理,有可能会查询效率问题,最后决定用redis的有序集合来解决这一问题,大概逻辑如下:
一、返回所有参与用户地市的排名,按照分数从高到低排序

$redis = Redis::connection();
$redisKey = 'user-ranking-list-'.$city.':';//定义当前地市排名
$total = $redis->zcard($redisKey)
$result = $redis->zrangebyscore($redisKey, 0, $total);

二、验证用户是否存在,不存在则直接插入并返回排名,存在即返回当前排名

if($redis->zrevrank($redisKey, $mobile) == null){
    $redis->zadd($redisKey, $score, $mobile);
}
$sort = $redis->zrevrank($redisKey,$mobile)+1;//排名+1

更多有序集合介绍可以参考:https://www.runoob.com/redis/redis-sorted-sets.html