PHP+Redis实现短网址功能附代码

PHP+Redis实现短网址功能附代码

  1. Predis 安装
composer require predis/predis
  1. 保存redis
  2. function setRedis($data, $token = 'share_')
        {
            $Client = new Client(config('predis'));
            $request = $token . rand_string();
            $param = $Client->set($request, json_encode($data));
            if ($param) {
                return str_replace($token, '', $request);
            } else {
                return 405;
            }
        }
  3. rand_string代码

  4. function rand_string(int $length = 6, int $type = null, string $addChars = ''): string
        {
            $str = '';
            switch ($type) {
                case 0:
                    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' . $addChars;
                    break;
                case 1:
                    $chars = str_repeat('0123456789', 3);
                    break;
                case 2:
                    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . $addChars;
                    break;
                case 3:
                    $chars = 'abcdefghijklmnopqrstuvwxyz' . $addChars;
                    break;
                default:
                    $chars = 'ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789' . $addChars;
                    break;
            }
            if ($length > 10) {
                $chars = $type == 1 ? str_repeat($chars, $length) : str_repeat($chars, 5);
            }
            if ($type != 4) {
                $chars = str_shuffle($chars);
                $str = substr($chars, 0, $length);
            } else {
                for ($i = 0; $i < $length; $i++) {
                    $str .= mb_substr($chars, floor(mt_rand(0, mb_strlen($chars, 'utf-8') - 1)), 1);
                }
            }
            return $str;
        }

data:

$data = [
    'id'=>rand_string(),
    '内容'=>"..............."
];

 getRedis

function getRedis($request)
    {
        $Client = new Client(config('predis'));
        $request = 'share_' . $request;
        $param = $Client->get($request);
        if (empty($param)) {
            return 404;
        }
        $param = json_decode($param, true);
        return $param;
    }

Wx:OoOM927

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值