Содержание:
Генерируем 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-код на своем сайте.
Комментарии
Классная вещь пригодилось
ОтветитьВ Yii1 выдает 500-ю ошибку
ОтветитьCHttpException
Ответитьdoes not exists.
protected\extensions\qrcode\QRCodeGenerator.php(75)
Сделайте так:
где images - папка в корне сайтаОтветить
Спасибо
ОтветитьУх ты, подсветка кода в комментариях
и ещеОтветить
Пока только в тестовом режиме, спасибо, что заметили
Ответитьправка wysibb на этом сайте: При добавлении ссылки достаточно только вставить её адрес и она будет вставляться в сообщение с текстом самой ссылки (сейчас ничего не происходит):
файл jquery.wysibb.js :
find :
add after:
Ответить
Спасибо, попробуем
Ответить