PHP QR Code, створюємо QR за допомогою PHP, Yii, Yii2

2 жовтня 2024 р. 35 egor

QR - quick response (швидкий відгук). QR-код - це двовимірний штрих-код, що містить інформацію, яку можна отримати та легко відгукнутися на неї, зчитавши її за допомогою спеціального сканера.

У цій статті розберемося як генерувати QR-код за допомогою «чистого» PHP, Yii та Yii2 на своєму сайті.

Зміст:

Генеруємо QR Code за допомогою PHP

Для початку необхідно завантажити бібліотеку PHP QR Code, яка значно спрощує генерацію QR коду.

Завантажити бібліотеку phpqrcode для PHP

Після того як ви завантажили і розархівували бібліотеку PHP QR Code, її необхідно підключити:

include "path/to/phpqrcode/qrlib.php";

Генеруємо простий QR код за допомогою php.

Після підключення бібліотеки PHP QR Code можна одразу згенерувати QR код, для цього додайте наступний php код після підключення бібліотеки:

QRcode::png("Генеруємо простий QR код за допомогою php");

Після чого отримаємо наступне зображення з QR кодом:

За допомогою 2 рядків коду ми отримали QR код. Розберемо ще кілька можливостей бібліотеки PHP QR Code.

Можливості бібліотеки PHP QR Code

Додамо рядок php коду і розберемо його докладніше:

QRcode::png("кодер.укр пробуємо qrlib", "qrlib.png", "H", 10, 5);

Ось що вийде:

Параметри

кодер.укр пробуємо qrlib - рядок, який потрібно закодувати в зображенні (QR Code).

qrlib.png - ім'я файлу, який міститиме QR-код. За замовчуванням дорівнює false, зображення генерується на льоту і не зберігається.

H - рівень корекції помилок. Що вищий рівень корекції, то менший обсяг даних, які може містити QR код. Можливі значення:

Параметр Рівень Відновлювані слова
L Низький 7%
M Середній 15%
Q Вище середнього 25%
H Високий 30%

10 - розмір кожного кодового квадратика в пікселях.

5 - розмір рамки навколо QR-коду.

Бібліотека PHP QR Code підтримує експорт у такі формати: PNG, SVG і EPS. Для створення QR кодів у будь-якому з цих форматів потрібно просто змінити назву методу з png(...) на svg(...) або eps(...) та використовувати правильне розширення в другому параметрі (ім'я файлу).

Генеруємо qr код у Yii

Для створення QR коду в Yii будемо використовувати розширення qrcode. Його потрібно завантажити та розпакувати в папці /protected/extension.

Завантажити розширення qrcode для Yii

Саме використання дуже просте, викликаємо віджет у потрібному місці таким чином:

$this->widget('application.extensions.qrcode.QRCodeGenerator',array(
    'data' => 'http://кодер.укр - приклад генерації qr коду в Yii',
    'matrixPointSize' => 5,
    'displayImage'=>true,
    'errorCorrectionLevel'=>'H',
    'filename' => 'qr.png'
));

Параметри

data - рядок для qr коду;

matrixPointSize - розмір кожного кодового квадратика в пікселях (від 1 до 10);

displayImage - зображення генерується на льоту і не зберігається;

errorCorrectionLevel - рівень корекції помилок;

filename - ім'я файлу.

Генеруємо qr код у Yii2

Для початку потрібно встановити розширення, відкриваємо консоль і виконуємо команду:

composer require xj/yii2-qrcode-widget

Використання

<?php

use xj\qrcode\QRcode;
use xj\qrcode\widgets\Email;
use xj\qrcode\widgets\Text;

echo Text::widget([
    'outputDir' => '@webroot/upload/qrcode',
    'outputDirWeb' => '@web/upload/qrcode',
    'ecLevel' => QRcode::QR_ECLEVEL_L,
    'text' => 'Привіт кодер.укр',
    'size' => 6,
]);

echo Text::widget([
    'text' => 'info@кодер.укр',
    'size' => 3,
    'margin' => 4,
    'ecLevel' => QRcode::QR_ECLEVEL_L,
]);

echo Email::widget([
    'email' => 'info@кодер.укр',
    'subject' => 'Тема листа',
    'body' => 'Важливе повідомлення',
]);

Параметри

text - рядок для qr коду;

size - розмір кожного кодового квадратика в пікселях.

margin - розмір рамки навколо QR коду.

ecLevel - рівень корекції помилок. Що вищий рівень корекції, то менший обсяг даних, які може містити QR код. Можливі значення: QR_ECLEVEL_L, QR_ECLEVEL_M, QR_ECLEVEL_Q, QR_ECLEVEL_H

Ось так просто можна згенерувати QR-код на своєму сайті.