PHP 二维码库

使用 PHP 生成二维码

PHP 拥有优秀的二维码库,如 endroid/qr-code 用于现代 Web 应用,chillerlan/php-qrcode 用于轻量级生成。非常适合 Laravel、Symfony 和 WordPress。

安装

使用 Composer 安装 PHP 二维码库。

Composer
composer require endroid/qr-code
Composer (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 二维码生态系统深入解析

PHP 驱动着大部分 Web 应用,其二维码库与流行的 CMS 平台和框架自然集成。

Laravel 集成与 Service Providers

将 endroid/qr-code 注册为单例 ServiceProvider。创建 QrCodeService。使用 Laravel Horizon workers 进行基于队列的生成。

WordPress 和 WooCommerce 插件

构建类似 [qrcode data="..."] 的短代码用于内联二维码。在 WooCommerce 中生成二维码用于支付验证。通过 REST API 为无头 CMS 提供服务。

服务器配置与 GD/Imagick

PHP 二维码生成依赖 GD 或 Imagick。chillerlan/php-qrcode 无需扩展即可生成 SVG。配置 OPcache 以加快重复执行速度。

常见问题

关于使用 PHP 生成二维码的常见问题。

endroid/qr-code 是功能最丰富的选择,支持颜色、徽标、标签和多种输出格式。chillerlan/php-qrcode 是适用于简单场景的轻量级替代方案。

探索其他语言的二维码库

查找您首选编程语言的二维码生成指南和代码示例。

开始使用 PHP 生成二维码

使用我们的免费生成器或将 API 集成到您的 PHP 应用中。