📜  树枝网址 - PHP (1)

📅  最后修改于: 2023-12-03 15:10:48.594000             🧑  作者: Mango

树枝网址 - PHP

树枝网址是一个使用 PHP 编写的短链接生成器。它允许用户将较长的 URL 缩短成更短的 URL,便于在社交媒体、电子邮件或其他人之间共享。

如何使用树枝网址
安装

在安装树枝网址之前,您需要确保已安装 PHP 和 MySQL。您还可以使用 Web 服务器(如 Apache 或 Nginx)将树枝网址部署到公共网络上。

下载树枝网址的源代码,并将其复制到您的 Web 服务器的 document root 目录中。

创建一个名为 “urls” 的数据库,并在其中执行以下 SQL 命令:

CREATE TABLE IF NOT EXISTS `urls` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(500) NOT NULL,
  `short_code` varchar(20) NOT NULL,
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

编辑 config.php 文件,配置数据库连接信息和网站根 URL:

define('DB_HOST', 'localhost');
define('DB_USER', 'username');
define('DB_PASS', 'password');
define('DB_NAME', 'urls');
define('ROOT_URL', 'http://example.com');
生成短链接

要生成短链接,请访问网站根 URL 然后在输入框中输入您要缩短的 URL,然后单击生成按钮。生成的短链接将在输入框下方显示。

访问短链接

要访问短链接,请在浏览器的地址栏中输入生成的短链接。树枝网址将重定向到原始 URL。

树枝网址的工作原理

当用户输入要缩短的 URL 时,树枝网址将检查该 URL 是否已存在于数据库中。如果是,则返回相应的短链接。否则,树枝网址将生成一个随机的短代码,将原始 URL 和短代码插入数据库,并返回新生成的短链接。

当用户访问短链接时,树枝网址将查找对应的原始 URL,并将用户重定向到该 URL。

树枝网址的代码片段

以下是树枝网址的代码片段,用于生成短链接:

function generateShortCode($length = 6) {
  $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $charactersLength = strlen($characters);
  $shortCode = '';
  for ($i = 0; $i < $length; $i++) {
    $shortCode .= $characters[rand(0, $charactersLength - 1)];
  }
  return $shortCode;
}

$url = $_POST['url'];
if (filter_var($url, FILTER_VALIDATE_URL)) {
  $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
  if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
  }
  $stmt = $mysqli->prepare('SELECT short_code FROM urls WHERE url = ?');
  $stmt->bind_param('s', $url);
  $stmt->execute();
  $stmt->store_result();
  if ($stmt->num_rows > 0) {
    $stmt->bind_result($shortCode);
    $stmt->fetch();
  } else {
    do {
      $shortCode = generateShortCode();
      $stmt = $mysqli->prepare('SELECT id FROM urls WHERE short_code = ?');
      $stmt->bind_param('s', $shortCode);
      $stmt->execute();
      $stmt->store_result();
      $exists = $stmt->num_rows;
      $stmt->close();
    } while ($exists);
    $stmt = $mysqli->prepare('INSERT INTO urls (url, short_code, created_at) VALUES (?, ?, ?)');
    $stmt->bind_param('sss', $url, $shortCode, date('Y-m-d H:i:s'));
    $stmt->execute();
  }
  $stmt->close();
  $mysqli->close();
  $shortUrl = ROOT_URL . '/' . $shortCode;
}

代码片段中包括:

  • generateShortCode() 函数,用于生成短代码。
  • 从 POST 请求中获取要缩短的 URL。
  • 检查 URL 是否有效。
  • 连接到数据库。
  • 检查 URL 是否已经存在于数据库中。
  • 如果 URL 存在,返回其对应的短链接。
  • 如果 URL 不存在,生成新的短代码,将 URL 和短代码插入数据库,并返回新的短链接。
总结

树枝网址是一个简单但非常有用的工具,可帮助用户生成短链接并轻松地分享长 URL。它是使用 PHP 和 MySQL 编写的,并易于部署到 Web 服务器上。以上就是树枝网址的介绍,希望对您有所帮助!