PHP短链接源码通常用于将长网址缩短为短网址,以便于分享和记忆。以下是一个简单的PHP短链接源码示例,包括生成短链接和还原长链接的功能。
CREATE TABLE `short_urls` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`long_url` varchar(2048) NOT NULL,
`short_code` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `short_code` (`short_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php
// 数据库连接配置
$host = 'localhost';
$dbname = 'short_url_db';
$user = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
// 生成短链接
function generateShortUrl($pdo, $longUrl) {
$shortCode = generateRandomString(6);
$stmt = $pdo->prepare("INSERT INTO short_urls (long_url, short_code) VALUES (:long_url, :short_code)");
$stmt->bindParam(':long_url', $longUrl);
$stmt->bindParam(':short_code', $shortCode);
$stmt->execute();
return $shortCode;
}
// 还原长链接
function getLongUrl($pdo, $shortCode) {
$stmt = $pdo->prepare("SELECT long_url FROM short_urls WHERE short_code = :short_code");
$stmt->bindParam(':short_code', $shortCode);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result ? $result['long_url'] : null;
}
// 生成随机字符串
function generateRandomString($length = 6) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
// 示例使用
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['long_url'])) {
$longUrl = $_POST['long_url'];
$shortCode = generateShortUrl($pdo, $longUrl);
echo "生成的短链接: http://yourdomain.com/$shortCode";
} elseif (isset($_GET['code'])) {
$shortCode = $_GET['code'];
$longUrl = getLongUrl($pdo, $shortCode);
if ($longUrl) {
header("Location: $longUrl");
} else {
echo "无效的短链接";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>短链接生成器</title>
</head>
<body>
<form method="post">
<input type="text" name="long_url" placeholder="输入长链接">
<button type="submit">生成短链接</button>
</form>
</body>
</html>
通过以上代码和解决方案,可以实现一个基本的PHP短链接系统。
领取专属 10元无门槛券
手把手带您无忧上云