PHP+Redis实现短网址功能附代码
- Predis 安装
composer require predis/predis
- 保存redis
-
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; } }
-
rand_string代码
-
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