这种是市面上比较常用的,但是需要数据库存储。或者自己写一套加解密的方法,根据code进行解密,效率更高
直接上代码
<?php
function shortUrl($url)
{
$charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$key = 'this-is-salt';
$timestamp = time();
$random = mt_rand();
$urlHash = md5($key . $url . $random . $url);
$shortUrl = '';
for ($i = 0; $i < 6; $i++) {
$index = hexdec(substr($urlHash, $i, 1)) % strlen($charset);
$shortUrl .= $charset[$index];
}
return $shortUrl;
}
$input = 'https://detail.tmall.com/item.htm?spm=a21bo.jianhua/a.201876.d2.5af92a89Ifuxtc&id=749045568815&xxc=ad_ct&priceTId=2147802817238772080956563e4b72&pisk=fsCEs5qKrWFedmXkbhOy7kLPS-RphIEjY_tWrabkRHxnOXilQZIyAzepOO-PjG-h4aUpr3jl436QCS_dJQducQPbGwQLY3l1YUvkIzYDz2fj0wncJQdu49XRseQd0bjKJuJu7CYyz0AkKpVMjhLWqDjkxdmMuEdkqgAu7hYW-DDkE3DMjEhcIwbo_E93unLdbjE6vp-c7-hoaacXKnj2jbqc_ervmwxZZbxLlPQF7wZEMNOdgi8fA5cF0ZCObFj0alRRXTjkzGVxVBBfvspNA-cGSCKMnTva-WbwTHJ25KuSpBWlv_JdL4UASBjOHnp3BlLNOs9yDdogxN_wxKWPAlhkAt7GbK1sfjORXTjkzGmF4ciJSadcw9ooUpY97naaS5VTcqbw5jfoeYpMMF-bReM-epY97naa7YHJIELwcyTC.';
$output = shortUrl($input);
var_dump($output);
?>
据库表字段包含 id,short_url,long_url这些字段就够了
处理短连的接口逻辑
public function longUrl(){
$short_url = $_GET['code'];
$data = 查数据库;
if(empty($data)){
header("location:https://www.taobao.com/");
}else{
$url = $data['long_url'];
header("location:$url");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」