1. 引入 endroid/qr-code 扩展包
https://packagist.org/packages/endroid/qr-code
composer require endroid/qr-code
2. 使用示例
<?php
// composer require endroid/qr-code
require \'vendor/autoload.php\';
use Endroid\QrCode\QrCode;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\LabelAlignment;
use Endroid\QrCode\Response\QrCodeResponse;
// 扫描二维码后跳转的地址
$qrCode = new QrCode(\'https://www.itqaq.com\');
// 内容区域宽高,默认为300
$qrCode->setSize(300);
// 外边距大小,默认为10
$qrCode->setMargin(10);
// 设置编码
$qrCode->setEncoding(\'UTF-8\');
// 设置容错等级
$qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH());
// 设置二维码颜色,默认为黑色
$qrCode->setForegroundColor([\'r\' => 0, \'g\' => 0, \'b\' => 0, \'a\' => 0]);
// 设置二维码背景色,默认为白色
$qrCode->setBackgroundColor([\'r\' => 255, \'g\' => 255, \'b\' => 255, \'a\' => 0]);
// 设置二维码下方的文字
$qrCode->setLabel(\'个人技术博客网站\', 11, null, LabelAlignment::CENTER());
##### 二维码中的logo #####
$qrCode->setLogoPath(\'logo.jpg\');
$qrCode->setLogoSize(100, 90);
// $qrCode->setLogoWidth(100);
// $qrCode->setLogoHeight(90);
##### 二维码中的logo / #####
// 启用内置的验证读取器(默认情况下禁用)
$qrCode->setValidateResult(false);
########## 二维码三种显示方式 ##########
// 二维码输出在浏览器上
// header(\'Content-Type: \' . $qrCode->getContentType());
// echo $qrCode->writeString();
// 二维码存在本地
// $qrCode->writeFile(\'3.png\');
// 返回数据URI
// data:image/png;base64,iVBORwxxx
$dataUri = $qrCode->writeDataUri();
echo \'<img src="\' . $dataUri . \'">\';
3. 二维码中放入logo,无法识别二维码的问题
闲着没事,测试二维码中放入logo时发现扫描二维码无法识别,经过反复调试得出结论:logo图片太大导出无法识别二维码
适当缩小logo大小后就可以正常识别二维码了