演示网站:https://2fa.hk/tools/qr/generate_qr.php
在PHP环境下生成二维码是完全可行的,你可以使用一个PHP库来帮助你完成这个任务。PHP QR Code 是一个流行的库,能够在PHP中生成二维码。
1. 安装 PHP QR Code 库
首先,你需要下载并安装 PHP QR Code 库。你可以从 PHP QR Code 官方网站 或其 GitHub 页面 获取。
假设你已经下载了 phpqrcode 库并将其放置在你的项目中。
2. 使用 PHP 生成二维码
创建一个PHP页面,通过该页面传入链接并生成二维码图片。以下是一个简单的实现步骤:
- 安装/包含 QR Code 库 将 phpqrcode 解压缩并将 phpqrcode 文件夹包含在项目中。
- 生成二维码的 PHP 文件: generate_qr.php
<?php
// 引入 QR 生成库
include("/www/wwwroot/根目录/vendor/phpqrcode/qrlib.php");
$defaultUrl = "https://2fa.hk";
$qrImage = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$url = isset($_POST['url']) ? trim($_POST['url']) : '';
if (empty($url)) {
$error = "请输入一个有效的 URL!";
} elseif (!filter_var($url, FILTER_VALIDATE_URL)) {
$error = "请输入一个有效的 URL!";
} else {
$url = filter_var($url, FILTER_SANITIZE_URL);
$_SESSION['url'] = $url;
// 生成二维码图片
$tempDir = "/www/wwwroot/根目录/tools/qr/temp_qr";
if (!file_exists($tempDir)) {
mkdir($tempDir, 0777, true);
}
$uniqueName = md5($url . time() . rand()) . ".png";
$fileName = "$tempDir/$uniqueName";
$qrImage = "/tools/qr/temp_qr/$uniqueName";
QRcode::png($url, $fileName, QR_ECLEVEL_L, 8, 2);
$_SESSION['qrImage'] = $qrImage;
// 不跳转,直接显示
// header("Location: " . $_SERVER['PHP_SELF']);
// exit();
}
} else {
$url = isset($_SESSION['url']) ? $_SESSION['url'] : $defaultUrl;
$qrImage = isset($_SESSION['qrImage']) ? $_SESSION['qrImage'] : '';
}
?>
<?php if (isset($error)) : ?>
<div id="error-message" class="error-message"><?= $error ?></div>
<?php endif; ?>
<div class="container">
<nav class="laotie">
<form action="" method="post" class="qr-form">
<h2>二维码生成器</h2>
<div class="qr-container">
<div class="qr-left">
<label for="url">请输入链接:</label>
<input type="text" id="url" name="url" value="<?= htmlspecialchars($url) ?>" placeholder="https://2fa.hk" required>
<button type="submit">生成二维码</button>
<p class="info-text">本站生成的二维码长期有效</p>
</div>
<div class="qr-right">
<?php
$defaultQrImage = '/tools/qr/qr_code.png';
$finalImage = $qrImage ?: $defaultQrImage;
?>
<img src="<?= htmlspecialchars($finalImage) ?>" alt="QR Code" class="qr-image" />
<?php if ($qrImage): ?>
<?php endif; ?>
</div>
</div>
</form>
</nav>
</div>
<style>
.qr-form {
max-width: 1160px;
margin: 0 auto;
padding: 20px;
background-color: white;
border-radius: 8px;
}
.qr-container {
display: flex;
justify-content: space-between;
gap: 20px;
}
.qr-left, .qr-right {
flex: 1;
}
.qr-left {
display: flex;
flex-direction: column;
justify-content: center;
}
.qr-left label {
font-size: 1.2rem;
margin-bottom: 8px;
}
.qr-left input[type="text"] {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
}
.qr-left button {
width: 100%;
padding: 10px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
font-size: 1.1rem;
cursor: pointer;
}
.qr-left button:hover {
background-color: #45a049;
}
.qr-right {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.qr-image {
display: block;
margin: 20px auto;
max-width: 100%;
height: auto;
}
.info-text {
margin-top: 10px;
font-size: 0.9rem;
color: #555;
text-align: center;
}
.error-message {
position: fixed;
top: 280px;
left: 50%;
transform: translateX(-50%);
background-color: #f44336;
color: white;
padding: 10px;
border-radius: 5px;
font-size: 1rem;
z-index: 9999;
opacity: 1;
transition: opacity 0.5s ease-in-out;
visibility: visible;
}
@media (max-width: 768px) {
.qr-container {
flex-direction: column;
}
}
</style>
<script>
window.onload = function() {
var errorMessage = document.getElementById('error-message');
if (errorMessage) {
setTimeout(function () {
errorMessage.style.opacity = 0;
setTimeout(function () {
errorMessage.style.visibility = 'hidden';
}, 500);
}, 5000);
}
}
</script>
3. 说明:
- 步骤 1: 在页面顶部通过 include 引入 phpqrcode 库。
- 步骤 2: 获取页面 URL 参数,url 为你希望生成二维码的链接,如果没有传入 url 参数,默认为 https://www.example.com。
- 步骤 3: 使用 QRcode::png() 方法生成二维码,并将其保存到临时目录 temp_qr 中。
- 步骤 4: 显示生成的二维码图片。
4. 使用方法:
- 将 phpqrcode 库的文件夹放置在你的项目目录下。
- 将上面的 generate_qr.php 文件放到你的 PHP 服务器上。
- 通过浏览器访问 generate_qr.php?url=你的链接,例如:
http://localhost/generate_qr.php?url=https://www.example.com
- 这样你就能看到生成的二维码,点击链接可以生成不同链接的二维码。
5. 示例:
- 访问链接 http://localhost/generate_qr.php?url=https://www.google.com,页面会显示一个指向 Google 网站的二维码。
通过这种方式,你就可以在PHP环境中生成一个动态的二维码页面了,扫描二维码后,用户会被引导到指定的链接。
电报咨询
Line咨询
whatsapp