一个php短网址的生成代码(仿微博短网址)

2023-12-12php编程
3

生成短网址是一个常见的需求。php是一种强大的后端编程语言,可以使用其来生成一个简洁的短网址。

下面是一个仿微博短网址的php短网址生成代码的攻略,包含以下步骤:

步骤1:建立数据表

首先需要创建一个MySQL数据库,用于存储短网址和原始网址之间的映射关系。可以使用下面的SQL语句在MySQL中创建一个数据表(表名为urls):

CREATE TABLE `urls` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `url` text NOT NULL,
  `shortened` varchar(10) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `shortened` (`shortened`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

步骤2:使用PHP连接到数据库

通过使用PHP的MySQLi或PDO扩展,可以连接到MySQL数据库。下面是一个使用MySQLi的代码示例,连接到名为test_db的数据库:

$db = new mysqli('localhost', 'username', 'password', 'test_db');
if ($db->connect_errno) {
    die('Failed to connect to MySQL: ' . $db->connect_error);
}

步骤3:生成短码

下一步是生成一个6位随机的短码来代表原始网址。我们可以通过使用PHP的uniqid()函数来生成一个唯一标识符,然后再使用substr()函数来截取标识符的前6个字符。

以下是PHP生成短码的示例代码:

$shortened = substr(uniqid(), 0, 6);

步骤4:将短码与原始网址存储到数据库

一旦有了短码,就可以将其和原始网址一起存储到数据库中。下面是一个使用PHP向数据库中插入数据的示例代码:

$url = 'http://www.example.com/';
$shortened = substr(uniqid(), 0, 6);
$query = "INSERT INTO urls (url, shortened) VALUES ('$url', '$shortened')";
$result = $db->query($query);
if ($result) {
    echo "Inserted successfully";
} else {
    echo "Error inserting data";
}

步骤5:通过短码访问原始网址

最后一步是将用户重定向到原始网址,我们可以通过使用PHP的header()函数将其重定向到以短码为后缀的网址。

以下是PHP重定向的示例代码:

$shortened_url = 'http://www.example.com/' . $shortened;
header('Location: ' . $shortened_url);

示例

下面是一个简单的实例,展示如何将用户输入的网址转换成短网址并存储到数据库,并且如何通过短网址访问原始网址:

$db = new mysqli('localhost', 'username', 'password', 'test_db');
if ($db->connect_errno) {
    die('Failed to connect to MySQL: ' . $db->connect_error);
}

// 获取用户输入的网址
if (!empty($_POST['url'])) {
    $url = $_POST['url'];
    // 生成短码并插入到数据库中
    $shortened = substr(uniqid(), 0, 6);
    $query = "INSERT INTO urls (url, shortened) VALUES ('$url', '$shortened')";
    $result = $db->query($query);
    if ($result) {
        $shortened_url = 'http://www.example.com/' . $shortened;
        echo "Shortened URL: <a href=\"$shortened_url\">$shortened_url</a>";
    } else {
        echo "Error inserting data";
    }
}

// 根据短码获取原始网址并重定向到该网址
if (!empty($_GET['short'])) {
    $shortened = $_GET['short'];
    $query = "SELECT url FROM urls WHERE shortened = '$shortened'";
    $result = $db->query($query);
    if ($result && $result->num_rows > 0) {
        $row = $result->fetch_assoc();
        header('Location: ' . $row['url']);
        exit;
    } else {
        echo "URL not found";
    }
}

// 显示输入框用于输入网址
echo <<<HTML
<form method="post">
    <label>URL:</label>
    <input type="text" name="url">
    <input type="submit" value="Shorten">
</form>
HTML;

以上示例代码中需要将'localhost''username'、和 'password'替换为实际的MySQL服务器、用户名和密码。同时需要将'http://www.example.com/'替换为实际的网站域名。

通过按照上述步骤,可以在PHP中轻松地生成一个简洁的短网址系统,以满足不同的需求。

The End

相关推荐

php实现多语言网站的思路和构想
我们在进行系统或者网站开发的时候,有需要多语言切换的功能。PHP作为一种常用的编程语言,可以很方便地实现多语言网站功能。本文将介绍如何使用PHP实现多语言网站功能,并提供相应的代码示例。 创建语言文件 首先,需要创建不同语言的语言文件。每个语言文件...
2025-08-20 php编程
83

php通过调用谷歌翻译API实现网站中英文翻译
我们在制作网站时候,要实现中英文双语网站,通过调用api方式实现文章内容自动翻译,这个要怎么操作呢?以调用谷歌翻译api实现翻译。 获取谷歌翻译秘钥 我们需要到Google Cloud控制台创建一个项目,并启用Cloud Translation API。然后,生成一个API密钥,这个...
2025-08-20 php编程
200

PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目
PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目,最终实现效果如下: 准备工作 PHP环境 :确保你的开发环境中安装了PHP。 DeepSeek API密钥 :注册并获取DeepSeek API的访问密钥。 创建api调用接口 创建一个PHP脚本(api.php),用于调用DeepSeek API...
2025-03-31 php编程
100

PHP怎么删除系统中的文件和目录
我们在使用php编程时候,有时候需要删除系统中某个目录。在php中,删除目录是通过使用一些内置函数来完成的。本文将介绍如何使用php中的内置函数删除目录。 一、unlink()函数 PHP中的unlink()函数可以用于删除一个文件,而当用于删除目录时,它只能删除目录...
2025-02-21 php编程
184

js+php实现用户登录
一.ajax完成用户名异步检验 html代码: !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" title用户名是否存在/title/headbodyform action="" method="post" table tr td用户名/td tdinput type="text" name="username" placeholder="请输入用户名" cla...
2025-01-09 php编程
93

PHP如何使用session实现保存用户登录信息
session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。 使用session保存页面登录信息 1、数据库连接配置页面:connectvars.php ?php/...
2024-11-05 php编程
95