安装
使用 Composer 安装 PHP 二维码库。
Composer
composer require endroid/qr-codeComposer (alt)
composer require chillerlan/php-qrcode使用 PHP 库生成二维码
使用流行的 PHP 二维码库的代码示例。
Basic QR Code with endroid/qr-code
<?php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qrCode = new QrCode('https://qrcode.fun');
$qrCode->setSize(300);
$qrCode->setMargin(10);
$writer = new PngWriter();
$result = $writer->write($qrCode);
// Save to file
$result->saveToFile('qrcode.png');
// Or output directly
header('Content-Type: ' . $result->getMimeType());
echo $result->getString();QR Code with Logo (endroid)
<?php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Writer\PngWriter;
use Endroid\QrCode\ErrorCorrectionLevel;
$qrCode = new QrCode(
data: 'https://qrcode.fun',
size: 300,
margin: 10,
foregroundColor: new Color(26, 43, 60),
backgroundColor: new Color(255, 255, 255),
errorCorrectionLevel: ErrorCorrectionLevel::High
);
$logo = new Logo(
path: 'logo.png',
resizeToWidth: 80
);
$writer = new PngWriter();
$result = $writer->write($qrCode, $logo);
$result->saveToFile('qrcode_logo.png');QRCode.fun API
通过 API 在 PHP 中生成二维码
从 PHP 使用 cURL 或 Guzzle 调用 QRCode.fun API。
PHP API 集成
<?php
$payload = json_encode([
'data' => 'https://qrcode.fun',
'width' => 300,
'height' => 300,
'type' => 'png',
'margin' => 10,
'dotsOptions' => ['color' => '#1A2B3C', 'type' => 'rounded'],
'cornersSquareOptions' => ['color' => '#8564C3', 'type' => 'extra-rounded'],
'backgroundOptions' => ['color' => '#FFFFFF'],
]);
$ch = curl_init('https://qrcode.fun/api/generate-qr-styled');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
// $result['data'] contains the base64 PNG data URL
echo substr($result['data'], 0, 50);实时二维码预览
立即尝试使用 PHP 生成二维码。
二维码预览
原生库 vs API
比较使用 PHP 二维码库与 QRCode.fun API。
| 功能 | 原生库 | QRCode.fun API |
|---|---|---|
| 设置复杂度 | Composer 安装 + GD/Imagick | 通过 cURL 发送单次 HTTP 请求 |
| 自定义 | 颜色、徽标、标签(endroid) | 完整样式:颜色、形状、徽标 |
| 离线支持 | 是 | 需要互联网 |
| 维护 | Composer 更新 | 始终保持最新 |
| 输出格式 | PNG, SVG, PDF(endroid) | PNG, SVG |
PHP 二维码使用场景
PHP 应用中二维码的常见场景。
Laravel 与 Symfony
在 Laravel 或 Symfony 控制器中生成二维码,用于用户资料、双因素认证和支付链接。
WordPress 插件
构建 WordPress 插件,为文章、产品和自定义内容类型生成二维码。
电子商务
为产品页面、支付网关、订单追踪和电子收据创建二维码。
PDF 发票
使用 TCPDF 或 FPDF 将二维码嵌入 PDF 发票中,用于支付验证和文档链接。
常见问题
关于使用 PHP 生成二维码的常见问题。
endroid/qr-code 是功能最丰富的选择,支持颜色、徽标、标签和多种输出格式。chillerlan/php-qrcode 是适用于简单场景的轻量级替代方案。