一个长期有效的超短链接生成网站,无需注册,再也不怕失效了
超短链接生成网址: https://2fa.hk/t/shorten.php
有时候,一个超长的超级链接地址,难记又难看
可是在网络上找到的短链接生成网站,要么需要注册,要么需要实名,要么需要付费,要么没有多久就失效。
今天教你一招,自己搭建超短链接生成页面。
要将一个长的网络链接转换为短链接,通常可以通过使用URL缩短服务实现。这些服务会生成一个较短的URL,并将其指向原始的长链接。你可以使用一些现成的API来实现这个功能,或者通过自建服务来实现。
以下是一些常见的方法:
使用第三方URL缩短服务
例如,Google的URL短链接服务已经关闭,但你仍然可以使用其他第三方服务,如:
- Bitly: https://bitly.com/
- TinyURL: https://tinyurl.com/
- t2m: https://t2m.io/
这些服务提供了网页版和API,允许你将长链接转成短链接。
使用PHP实现短链接功能
如果你想通过PHP代码实现自建的URL缩短服务,可以通过以下步骤实现:
- 创建一个数据库:用来存储长URL和短URL之间的映射关系。
- 生成短链接:使用某种算法(如哈希函数)生成一个短的唯一标识符(通常是一个短字符串)。
- 保存数据:将原始URL和短链接标识符存储到数据库中。
- 重定向:当访问短链接时,使用重定向将用户导向原始URL。
下面是一个简化的PHP代码示例:
<?php
// 连接数据库
$host = "localhost";
$username = "username";
$password = "password";
$dbname = "shorten_url";
$conn = new mysqli($host, $username, $password, $dbname);
// 检查数据库连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 用于生成短链接的函数
function generateShortLink($longUrl) {
// 创建一个随机的短URL标识符(通常是哈希算法或随机生成)
$shortCode = substr(md5($longUrl), 0, 6);
return $shortCode;
}
// 处理请求
if (isset($_POST['longUrl'])) {
$longUrl = $_POST['longUrl'];
$shortCode = generateShortLink($longUrl);
// 存储到数据库
$stmt = $conn->prepare("INSERT INTO urls (long_url, short_code) VALUES (?, ?)");
$stmt->bind_param("ss", $longUrl, $shortCode);
$stmt->execute();
// 输出短链接
echo "Short URL: http://yourdomain.com/" . $shortCode;
}
// 处理短链接的重定向
if (isset($_GET['code'])) {
$shortCode = $_GET['code'];
$stmt = $conn->prepare("SELECT long_url FROM urls WHERE short_code = ?");
$stmt->bind_param("s", $shortCode);
$stmt->execute();
$stmt->bind_result($longUrl);
$stmt->fetch();
// 重定向到原始URL
if ($longUrl) {
header("Location: $longUrl");
} else {
echo "URL not found!";
}
}
?>
使用Python实现短链接功能
如果你更偏向于Python,可以使用类似Flask框架的代码来实现:
from flask import Flask, request, redirect
import hashlib
import sqlite3
app = Flask(__name__)
# 生成短链接的函数
def generate_short_link(long_url):
return hashlib.md5(long_url.encode()).hexdigest()[:6]
# 存储长链接与短链接的关系
def store_url(long_url, short_code):
conn = sqlite3.connect('urlshortener.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS urls (long_url TEXT, short_code TEXT)')
cursor.execute('INSERT INTO urls (long_url, short_code) VALUES (?, ?)', (long_url, short_code))
conn.commit()
conn.close()
# 处理长链接请求
@app.route('/shorten', methods=['POST'])
def shorten_url():
long_url = request.form['longUrl']
short_code = generate_short_link(long_url)
store_url(long_url, short_code)
return f"Short URL: http://localhost:5000/{short_code}"
# 处理短链接重定向请求
@app.route('/<short_code>')
def redirect_to_long_url(short_code):
conn = sqlite3.connect('urlshortener.db')
cursor = conn.cursor()
cursor.execute('SELECT long_url FROM urls WHERE short_code = ?', (short_code,))
row = cursor.fetchone()
conn.close()
if row:
return redirect(row[0])
else:
return "URL not found!"
if __name__ == "__main__":
app.run(debug=True)
结论
- 使用现成的URL缩短服务(如Bitly、TinyURL)是最简单的方法。
- 如果想要自建URL缩短服务,可以使用PHP、Python等语言实现,方法大致相同,主要通过生成唯一标识符和数据库存储来完成。
- 使用合适的哈希算法(如MD5)生成短链接,并确保在重定向时查找对应的长链接。
评论
评论 (0)