<?php /** * 生成短链接 * @param string $url 长链接 * @return string 短链接 */ function short_url($url) { $host = 'http://mn.co'; // 短链接主机地址 $char = array ( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5' ); $md5 = md5($url); // 将长链接进行MD5处理 $md5sub = substr($md5, 0, 8); // 取出前面8个字符 $int = 0x3FFFFFFF & (1 * ("0x{$md5sub}")); // 与运算,0x3FFFFFFF(十六进制)=1073741823(十进制)=2^30-1 $key = ''; for ($i = 0; $i < 6; $i++) { $key .= $char[0x0000001F & $int]; // 0x0000001F(十六进制)=31(十进制) $int >>= 5; // 右移运算 } return "{$host}/{$key}"; } $url = short_url('http://www.manong.life/index.html?name=张三&age=18'); echo $url; // http://mn.co/5norw2
Copyright © 2023 码农人生. All Rights Reserved