如何使用PHP和MySQl实现短网址的生成和读取

如何使用PHP和MySQL实现短网址的生成和读取

随着互联网的发展,网址的长度逐渐变得越来越长。针对这一问题,短网址应运而生。通过将原始网址转化为较短的独特标识符,短网址可以更方便地分享和访问。以下是使用PHP和MySQL实现短网址的方法:

1.创建数据库

第一步是创建一个用于存储短网址的MySQL数据库:

CREATE DATABASE shorturl;

然后,创建一个名为“urls”的表格来存放网址和短网址:

CREATE TABLE urls (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    url VARCHAR(255),
    short VARCHAR(10)
);

2.生成短网址

接下来,我们需要编写一个PHP函数来生成短网址。该函数将获取原始网址,并计算其CRC32校验和,然后将其转化为10位短网址:

function createShortURL($url) {
    $urlHash = hash('crc32b', $url); // 计算URL的哈希值
    $short = substr($urlHash, 0, 10); // 取哈希值前10位作为短网址
    return $short;
}

3.将网址插入数据库

现在,我们可以将原始网址和生成的短网址插入到MySQL数据库中:

$url = 'https://www.example.com/very-long-url-that-needs-to-be-shortened';
$short = createShortURL($url);

$conn = new mysqli('localhost', 'username', 'password', 'shorturl');

$sql = "INSERT INTO urls (url, short) VALUES ('{$url}', '{$short}')";

if ($conn->query($sql) === TRUE) {
    echo '短网址已创建:https://www.example.com/'.$short;
} else {
    echo '创建短网址时出现错误:'.$conn->error;
}

4.重定向到原始网址

最后,我们需要编写一段代码来将短网址转化为对应原始网址,并进行重定向:

$short = $_GET['short'];

$conn = new mysqli('localhost', 'username', 'password', 'shorturl');

$sql = "SELECT url FROM urls WHERE short='{$short}' LIMIT 1";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $url = $row['url'];
    header("Location: ".$url);
} else {
    echo '短网址无效';
}

通过以上步骤,我们就可以完成使用PHP和MySQL实现短网址的生成和读取。

晓白博客网版权所有,原文地址https://www.xbnb.cn/6500
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 如有资源失效请在下面及时反馈,谢谢!! 抢沙发

请登录后发表评论

    请登录后查看评论内容