[TOC] #### 1. 安裝擴展 --- Packagist : [https://packagist.org/packages/endroid/qr-code](https://packagist.org/packages/endroid/qr-code) 注意使用的版本,寫本文章時 3.x 是最新版,現(xiàn)在已經(jīng)有更新的版本了,在新版本中,本文有些方法不能使用了 ``` composer require endroid/qr-code:"3.*" ``` #### 2. 使用示例 --- ```php <?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; // 掃描二維碼后跳轉(zhuǎn)的地址 $qrCode = new QrCode('http://waterflosserreview.com'); // 內(nèi)容區(qū)域?qū)捀?默認為300 $qrCode->setSize(300); // 外邊距大小,默認為10 $qrCode->setMargin(10); // 設(shè)置編碼 $qrCode->setEncoding('UTF-8'); // 設(shè)置容錯等級 $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH()); // 設(shè)置二維碼顏色,默認為黑色 $qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]); // 設(shè)置二維碼背景色,默認為白色 $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]); ##### 設(shè)置二維碼下方的文字 ##### $qrCode->setLabel('個人技術(shù)博客網(wǎng)站', 11, null, LabelAlignment::CENTER()); ##### 二維碼中的logo ##### $qrCode->setLogoPath('logo.jpg'); $qrCode->setLogoSize(100, 90); // $qrCode->setLogoWidth(100); // $qrCode->setLogoHeight(90); ##### 二維碼中的logo / ##### // 啟用內(nèi)置的驗證讀取器(默認情況下禁用) $qrCode->setValidateResult(false); ########## 二維碼三種顯示方式 ########## // 二維碼輸出在瀏覽器上 // header('Content-Type: ' . $qrCode->getContentType()); // echo $qrCode->writeString(); // 二維碼存在本地 // $qrCode->writeFile('3.png'); // 返回數(shù)據(jù)URI // data:image/png;base64,iVBORwxxx $dataUri = $qrCode->writeDataUri(); echo '<img src="' . $dataUri . '">'; ``` #### 3. 快速使用 --- 實際開發(fā)中,使用最多的是根據(jù)一串普通文本生成字符串,所以我將代碼做了簡化,方便以后快速使用 ```php <?php // composer require endroid/qr-code require 'vendor/autoload.php'; use Endroid\QrCode\QrCode; $qrCode = new QrCode("http://waterflosserreview.com"); // 內(nèi)容區(qū)域?qū)捀?默認為300 $qrCode->setSize(300); // 外邊距大小,默認為10 $qrCode->setMargin(10); // 設(shè)置編碼 $qrCode->setEncoding('UTF-8'); // 返回數(shù)據(jù)URI // data:image/png;base64,iVBORwxxx $dataUri = $qrCode->writeDataUri(); echo '<img src="' . $dataUri . '">'; ``` #### 4. 無法識別二維碼問題 --- **閑著沒事,測試二維碼中放入logo時發(fā)現(xiàn)掃描二維碼無法識別,經(jīng)過反復調(diào)試得出結(jié)論:logo圖片太大導出無法識別二維碼** ![](https://img.itqaq.com/art/content/07028a61293dc3eed9e3694e263085cb.png) **適當縮小logo大小后就可以正常識別二維碼了** ![](https://img.itqaq.com/art/content/13f78201d672d4f5209ac26f0fcb78a4.png)