PHP QR码生成器:最佳库概览
QR码已成为现代网络不可或缺的一部分。它们用于快速访问链接、传输联系信息、服务授权甚至支付。如果您使用PHP开发并希望在您的网站上实现QR码生成,您无需重新发明轮子——有一些经过验证的库只需几行代码即可完成此任务。
在本文中,我们将介绍三种流行的解决方案:经典的phpqrcode、现代的endroid/qr-code和轻量级的chillerlan/php-qrcode。您将了解如何安装它们、生成QR码并将其显示在屏幕上或保存到文件中。
1. phpqrcode库(经典方案)
这是最早的PHP QR码生成库之一。它不需要外部依赖,开箱即用,至今仍用于许多遗留项目。主要缺点是不支持现代PSR标准和Composer(尽管可以手动安装)。
安装
从SourceForge下载存档并解压到您的项目文件夹中。引入qrlib.php文件:
require_once 'phpqrcode/qrlib.php';生成并输出PNG的示例
<?phprequire_once 'phpqrcode/qrlib.php';
// 要编码的数据$text = 'https://pythonlib.ru';
// 保存文件的路径$filename = 'qrcode.png';
// 生成QR码,纠错级别L(7%),尺寸10QRcode::png($text, $filename, QR_ECLEVEL_L, 10, 2);
// 在浏览器中输出图像header('Content-Type: image/png');QRcode::png($text, false, QR_ECLEVEL_L, 10, 2);?>第二个参数false表示图像直接输出到浏览器,而不是保存到文件。
2. endroid/qr-code库(现代且灵活)
这是Packagist上最流行的解决方案。该库支持PSR-4,易于与任何框架(Laravel、Symfony)集成,并允许自定义颜色、尺寸、边距甚至添加Logo。
通过Composer安装
composer require endroid/qr-code基本生成示例
<?phprequire 'vendor/autoload.php';
use Endroid\\QrCode\\QrCode;use Endroid\\QrCode\\Writer\\PngWriter;
$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(300) ->setMargin(10);
$writer = new PngWriter();$result = $writer->write($qrCode);
// 在浏览器中输出header('Content-Type: '.$result->getMimeType());echo $result->getString();?>带Logo的QR码
<?phpuse Endroid\\QrCode\\Logo\\Logo;use Endroid\\QrCode\\Color\\Color;
$logo = Logo::create('path/to/logo.png') ->setResizeToWidth(60);
$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(400) ->setForegroundColor(new Color(0, 123, 255)); // 蓝色
$writer = new PngWriter();$result = $writer->write($qrCode, $logo);
header('Content-Type: image/png');echo $result->getString();?>3. chillerlan/php-qrcode库(轻量且快速)
如果您需要最小依赖和高性能,这是一个绝佳选择。该库支持所有标准编码模式、掩码和纠错级别。非常适合高负载项目。
安装
composer require chillerlan/php-qrcode生成示例
<?phprequire 'vendor/autoload.php';
use chillerlan\\QRCode\\QRCode;use chillerlan\\QRCode\\QROptions;
$options = new QROptions([ 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L,