php生成解析短链接

43 篇文章 1 订阅

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短链接的作用是将长网址转换成短网址,以便更方便地分享和传播。长网址通常比较复杂且不易记忆,而短网址则更简洁、易读且易分享。短链接可以应用于多种场景,例如:

  1. 社交媒体分享:在微博、微信、Twitter等社交媒体上,长网址会占用较多的字符数,而短链接可以节省字符数,并且更易于阅读和点击。
  2. 广告跟踪:将短链接嵌入广告中,可以追踪广告的点击量和转化率,从而评估广告投放效果。
  3. 网址美化:短链接可以将长而复杂的网址转换成简洁、易记的短网址,提高用户体验。
  4. 防止链接失效:长网址可能会发生更改或失效,而短链接可以通过重定向保证链接的可用性。 总的来说,PHP短链接可以提供更好的用户体验,方便网址分享和传播,并且在广告跟踪和链接管理方面也具有一定的作用。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP隔壁老王邻居

啦啦啦啦啦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值