1.创建数据表
CREATE TABLE `sorl_url` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`route` varchar(255) DEFAULT NULL COMMENT '路径',
`sortData` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2.添加解析短链接
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "ttx";
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// echo "连接数据库成功";exit;
} catch (PDOException $e) {
echo "连接数据库失败: " . $e->getMessage();
exit;
}
$do=isset($_GET['do'])?$_GET['do']:null;
$url='https://example.com/';//自己的url
//添加短链接
if($do=='add'){
$url=$_GET['url'];//long-url
$sql = "INSERT INTO sorl_url (route, sortData) VALUES (:value1, :value2)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':value1', $value1);
$stmt->bindParam(':value2', $value2);
// 设置参数的值
$value1 = $url;
$value2 = redirectToLongLink($url);
$stmt->execute();
echo 'ok';
}
//获取短链接
if($do=='get'){
$sql = "SELECT * FROM sorl_url where route=:value1";
try {
$value1=$_GET['url'];//long-url
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':value1', $value1);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$result){
echo 'no found';exit;
}
echo $url.$result['sortData'];exit;
} catch (PDOException $e) {
echo "Query failed: " . $e->getMessage();
}
}
//解析短链接
if(!$do){
$data = str_replace('/','',$_SERVER['PATH_INFO']);
$sql = "SELECT * FROM sorl_url where sortData=:value1";
try {
$value1=$data;
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':value1', $value1);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$result){
echo 'no found';exit;
}
echo $result['route'];exit;
} catch (PDOException $e) {
echo "Query failed: " . $e->getMessage();
}
}
function redirectToLongLink($shortUrl) {
// 生成短链接的逻辑,可以使用各种算法或服务
// 这里仅提供一个简单的示例
// 生成随机字符串
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$shortCode = '';
$length = 6; // 短链接的长度
for ($i = 0; $i < $length; $i++) {
$index = rand(0, strlen($characters) - 1);
$shortCode .= $characters[$index];
}
return $shortCode;
}
PHP短链接的作用是将长网址转换成短网址,以便更方便地分享和传播。长网址通常比较复杂且不易记忆,而短网址则更简洁、易读且易分享。短链接可以应用于多种场景,例如:
- 社交媒体分享:在微博、微信、Twitter等社交媒体上,长网址会占用较多的字符数,而短链接可以节省字符数,并且更易于阅读和点击。
- 广告跟踪:将短链接嵌入广告中,可以追踪广告的点击量和转化率,从而评估广告投放效果。
- 网址美化:短链接可以将长而复杂的网址转换成简洁、易记的短网址,提高用户体验。
- 防止链接失效:长网址可能会发生更改或失效,而短链接可以通过重定向保证链接的可用性。 总的来说,PHP短链接可以提供更好的用户体验,方便网址分享和传播,并且在广告跟踪和链接管理方面也具有一定的作用。