Генератор QR-кода PHP, основанный на реализации Казухико Арасе, с пространством имен, очисткой, улучшением и другими вещами.
Он также оснащен считывателем QR-кода, основанным на PHP-порте библиотеки ZXing.
Внимание: теперь в NPM также есть порт javascript: @chillerlan/qrcode.
Создание QR-кодов модели 2, версии с 1 по 40
Поддерживаются уровни ECC L/M/Q/H
Поддержка смешанного режима (режимы кодирования можно комбинировать внутри QR-символа). Поддерживаемые режимы:
кандзи (японский, Shift-JIS)
Ханзи (упрощенный китайский, GB2312/GB18030), как определено в GBT18284-2000.
Поддержка ECI
числовой
буквенно-цифровой
8-битный двоичный файл
13-битный двухбайтовый:
Гибкие, легко расширяемые модули вывода, встроенная поддержка следующих форматов вывода:
GdImage (растровая графика: avif, bmp, gif, jpeg, png, webp)
ImageMagick (несколько поддерживаемых форматов изображений)
Типы разметки: SVG, HTML и т. д.
Типы строк: JSON, обычный текст и т. д.
Инкапсулированный постскриптум (EPS)
PDF через FPDF
Считыватель QR-кода (через GD и ImageMagick)
PHP 8.2+
ext-gd
для вывода на основе QRGdImage
ext-imagick
с установленным ImageMagick
ext-fileinfo
необходимый для вывода QRImagick
setasign/fpdf
для модуля вывода PDF
intervention/image
для альтернативного вывода GD/ImageMagick
ext-mbstring
необязательный:
Для считывания QR-кода требуется ext-gd
или ext-imagick
!
Руководство пользователя находится по адресу https://php-qrcode.readthedocs.io/ (источники).
Документацию по API, созданную с помощью phpDocumentor, можно найти по адресу https://chillerlan.github.io/php-qrcode/.
Документацию по контейнеру QROptions
можно найти здесь: chillerlan/php-settings-container.
Важно: используйте примеры из ветки, соответствующей установленной вами версии php-qrcode (v4.x, v5.x, dev-main)!
Дополнительную информацию смотрите в руководстве по установке!
composer require chillerlan/php-qrcode
{ "require": { "php": "^8.2", "chillerlan/php-qrcode": "dev-main#<commit_hash>" } }
Примечание. Замените dev-main
ограничением версии, например ^5.0
— действительные версии см. в выпусках.
Мы хотим закодировать этот URI для мобильного аутентификатора в изображение QR-кода:
$data = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net';// быстро и просто: echo '<img src="'.(new QRCode)->render($data).'" alt="QR-код" />';
Подожди, что это было? Пожалуйста, еще раз, медленнее! См. Расширенное использование в руководстве. Кроме того, загляните в папку примеров, чтобы увидеть еще несколько примеров использования.
Использовать встроенный считыватель QR-кода довольно просто:
// обычно рекомендуется обернуть программу чтения в блок try/catch, потому что она БУДЕТ выдавать в конечном итоге try{ $result = (new QRCode)->readFromFile('path/to/file.png'); // -> DecoderResult// теперь вы можете использовать экземпляр результата...$content = $result->data; $матрица = $результат->getMatrix(); // -> QRMatrix// ...или просто приведите его к строке, чтобы получить содержимое:$content = (string)$result; }catch(Throwable $e){ // упс!}
Привет, пожалуйста, ознакомьтесь с другими моими проектами, которые намного круче, чем qrcodes!
js-qrcode — порт этой библиотеки на JavaScript.
php-authenticator — реализация Google Authenticator (см. пример аутентификатора)
php-httpinterface — реализация PSR-7/15/17/18
php-oauth — клиентская библиотека OAuth 1/2, полностью совместимая с PSR-7/PSR-17/PSR-18.
php-database — клиент базы данных и построитель запросов для MySQL, Postgres, SQLite, MSSQL, Firebird
php-tootbot — библиотека ботов Mastodon (см. @dwil)
Я не несу ответственности за сгоревшие процессоры, введенные в заблуждение приложения, неудачные входы в систему и т. д. Используйте на свой страх и риск!
Части этого кода перенесены на PHP из проекта ZXing и лицензируются по лицензии Apache версии 2.0.
Документация распространяется по лицензии Creative Commons Attribution 4.0 International (CC BY 4.0).
Слово «QR Code» является зарегистрированным товарным знаком DENSO WAVE INCORPORATED.
https://www.qrcode.com/en/faq.html#patentH2Title